楼主: dlcaixin
2327 1

[问答] 有一段遗传算法优化BP网络的程序,有提示错误,请问能否帮助调试一下,谢谢? [推广有奖]

  • 0关注
  • 0粉丝

已卖:34份资源

高中生

7%

还不是VIP/贵宾

-

威望
0
论坛币
52 个
通用积分
0.0600
学术水平
0 点
热心指数
4 点
信用等级
0 点
经验
371 点
帖子
20
精华
0
在线时间
19 小时
注册时间
2010-4-2
最后登录
2013-7-3

楼主
dlcaixin 发表于 2011-5-9 11:29:47 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
%% 遗传算法优化
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)
    initFit(i)=de_code(initPop(i,:));
end
initPop=[initPop initFit];
gen=100;
% 优化计算
[X,EndPop,BPop,Trace]=ga(bounds,'fitness',[],initPop,[1e-6 1 0],'maxGenTerm',...
    gen,'normGeomSelect',0.09,'simpleXover',2,'boundaryMutation',[2 gen 3]);

[m,n]=find(X==1);
disp(['优化筛选后的输入自变量编号为:' num2str(n)]);
% 绘制适应度函数进化曲线
figure
plot(Trace(:,1),Trace(:,3),'r:')
hold on
plot(Trace(:,1),Trace(:,2),'b')
xlabel('进化代数')
ylabel('适应度函数')
title('适应度函数进化曲线')
legend('平均适应度函数','最佳适应度函数')
xlim([1 gen])
%% 新训练集/测试集数据提取
p_train=zeros(size(n,2),size(T_train,2));
p_test=zeros(size(n,2),size(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;
net_ga=newff(minmax(p_train),[s1,1],{'tansig','purelin'},'trainlm');
% 训练参数设置
net_ga.trainParam.epochs=1000;
net_ga.trainParam.show=10;
net_ga.trainParam.goal=0.1;
net_ga.trainParam.lr=0.1;
net_ga.trainParam.showwindow=0;
%% 训练优化BP网络
net_ga=train(net_ga,p_train,t_train);
%% 仿真测试优化BP网络
tn_ga_sim=sim(net_ga,p_test);
% 反归一化
T_ga_sim=postmnmx(tn_ga_sim,mint,maxt);
e=cputime-t;
T_ga_sim(T_ga_sim>1.5)=2;
T_ga_sim(T_ga_sim<1.5)=1;
result_ga=[T_ga_sim' T_test'];
%% 结果显示(优化BP网络)
number_b_sim=length(find(T_ga_sim==1 & T_test==1));
number_m_sim=length(find(T_ga_sim==2 &T_test==2));
disp('(2)优化BP网络的测试结果为:');
disp(['良性乳腺肿瘤确诊:' num2str(number_b_sim)...
      '  误诊:' num2str(number_B-number_b_sim)...
      '  确诊率p1=' num2str(number_b_sim/number_B*100) '%']);
disp(['恶性乳腺肿瘤确诊:' num2str(number_m_sim)...
      '  误诊:' num2str(number_M-number_m_sim)...
      '  确诊率p2=' num2str(number_m_sim/number_M*100) '%']);
disp(['建模时间为:' num2str(e) 's'] );
以上程序段,在加粗的两个地方提示错误,请教高手如何解决?急急急!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:遗传算法优化 bp网络 遗传算法 Mutation Boundary 程序 网络 算法 提示 调试

沙发
sdfcll 发表于 2011-12-18 16:36:58
不懂

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 17:49