好文档 - 专业文书写作范文服务资料分享网站

遗传算法的优化计算—建模自变量降维

天下 分享 时间: 加入收藏 我要投稿 点赞

%%清空环境变量 clear all clc warning off %%声明全局变量

global P train T train P test T test mint maxt S si S=30; s1=50; %%导入数据 load data.mat a=randperm(569); Train=data(a(1:500),:); Test=data(a(501:end),:); %训练数据

P_train=Train(:,3:end)'; T_train=Train 仁 2): %测试数据

P_test=Test(:,3:end)*; T_test=Test(:,2)'; %显示实验条件

total_B=length(find(data(:,2)==1)); total_M=length(find(data(:,2)==2)); count_B=length(find(T_train==1)); count_M=length(find(T_train==2)); number_B=length(find(T_test==1)); number_M=length(find(T_test==2)); disp(,实验条件为:J;

disp(['病例总数:fnum2str(569)...

,良性:*num2str(total_B)... ,恶性:,num2str(total_M)]);

disp(['训练集病例总数:*num2str(500)...

,良性:'num2str(count_B)... ,恶性:’num2str(count_M)]);

disp(['测试集病例总数:*num2str(69)...

,良性:Sum2str(number_B)... ,恶性:Sum2str(number_M)]);

%%数据归一化

[P_train,minp,maxp,T_train,mint,maxt]=pre mnm x(P_train,T_train); P_test=tramnmx(P_test,minp,maxp); %%创建单BP网络 t=cputime;

net_bp=n ewff(minmax(P_train),[s1,1],{'ta nsigTpurelin 'J/trainlm'); %设置训练参数

net_bp.trai nParam.epochs=1000; n et_bp.trainParam.show=10; n et_bp.trai nParam.goal=0.1; n et_bp.trainParam.lr=0.1;

n et_bp.trai nParam.showwindow=0; %%训练单BP网络

n et_bp=train(net_bp,P_train,T_train); %%仿真测试单BP网络

tn _bp_sim=sim( net_bp,P_test); %反归一化

T_bp_sim=postmnmx(tn_bp_sim,mint,maxt); e=cputime-t;

T_bp_s i m (T_bp_si m > 1.5)=2; T_bp_si m (T_bp_si m< 1.5)=1; result_bp=[T_bp_sim* T_test*]; %%结果显示(单BP网络)

number_B_sim=length(find仃_bp_sim==1 & T_test==1)); number_M_sim=length(find(T_bp_sim==2 &T_test==2)); dispC(1)BP网络的测试结果为:’);

disp(['良性乳腺肿瘤确诊:’num2str(number_B_sim)...

'误诊:*num2str(number_B?number_B_sim)...

,确诊率 p1 ='num2str(number_B_sim/number_B*1 OO)'%1]);

disp([*恶性乳腺肿瘤确诊:,num2str(number_M_sim)...

'误诊:,num2str(number_M-number_M_sim)...

,确诊率 p2='num2str(number_M_sim/number_l\\/ri 00)'%']);

disp『建模时间为:'num2str(e) *s']); %%遗传算法优化 popu=20;

bounds=ones(S,1 )*[0,1 ]; %产生初始种群

% initPop=crtbp(popu,S); initPop=randint(popu,S,[0 1]); %计算初始种群适应度 initFit=zeros(popu,1); for i=1:size(initPop,1)

in itFit(i)=de_code(initPop(i,:));

end

initPop=[initPop initFit]; gen=100; %优化计算

[X,EndPop,BPop,Trace]=ga(bounds,'fitness1,[],initPop,[1e-6 1 0],'maxGenTerm',...

gen/normGeomSelecfjO.OG/simpleXover'^/boundaryMutation',^ gen 3]); [m,n]=find(X==1);

disp『优化筛选后的输入自变量编号为 %绘制适应度函数进化曲线 figure

plot 仃 race(:,1 ),Trace(:,3),'r:') hold on

plot(Trace(:,1),Trace(:,2),'b') xlabe*进化代数) ylabel('适应度函数') title('适应度函数进化曲线')

legend('平均适应度函数T最佳适应度函数') xlim([1 gen])

%%新训练集/测试集数据提取 p_train=zeros(size( n,2),size(T_train,2)); p_test=zeros(size(n52)3size(T_test,2)); for i=1 :length(n)

p_train(i,:)=P_train(n(i),:); p_test(i,:)=P_test(n(i),:); end t_train=T_train; %%创建优化BP网络 t=cputime;

n et_ga=n ewff(minmax(p_train),[s1,1],fta nsigTpurelin 'J/trainlm'); %训练参数设置

n et_ga.trai nParam.epochs=1000; n et_ga.trai nParam.show=10; n et_ga.trai nParam.goal=0?1; n et_ga.trai nPara m.l r=0.1;

n et_ga.trai nParam?showwinclow=0; %%训练优化BP网络

n et_ga=train(net_ga5p_train3t_train); %%仿真测试优化BP网络 tn_ga_sim=sim(net_ga,p_test); %反归一化

T_ga_sim=postm nmx( tn_ga_sim,mint,maxt); e=cputime-t; T_ga_si m (T_g a_si m > 1.5)=2;

T_g a_s i m (T_g a_s i m < 1.5)=1; result_ga=[T_ga_sim, T_tesf]; %%结果显示(优化BP网络)

number_b_sim=length(find(T_ga_sim==1 & T_test==1));

:Sum2str(n)]);

遗传算法的优化计算—建模自变量降维

%%清空环境变量clearallclcwarningoff%%声明全局变量globalPtrainTtrainPtestTtestmintmaxtSsiS=30;s1=50;%%导入数据loaddata.mata=randperm(569);Train=data(a(1:500),:);Test=data(a(501:end
推荐度:
点击下载文档文档为doc格式
4mk1s5ve1h23x6i11fyp2nsft0iv0l00r4b
领取福利

微信扫码领取福利

微信扫码分享