当前位置: 首页 > 仿真模拟 >遗传算法优化BP神经网络

遗传算法优化BP神经网络

作者 1210080842
来源: 小木虫 250 5 举报帖子
+关注

用来做优化,源代码参考的是matlab神经网络30个案例分析里第3章的程序。总共35组数据前30组用来训练后5组测试,3个输入2个输出,现在程序可以运行就是设置精度是e-6,为何曲线一直保持在e-4,初学者,请大神指导!!!

%读取数据
load w input output

%训练预测数据
input_train=input((1:30),';
output_train=output((1:30),';
input_test=input((31:35),';
output_test=output((31:35),';;

%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);

net=newff(minmax(inputn),[7,2],{'tansig','purelin'},'trainlm');

net.trainParam.epochs=100;
net.trainParam.lr=0.1;
net.trainParam.goal=0.000001;
%net.trainParam.show=NaN

%网络训练
net=train(net,inputn,outputn);

%% BP网络预测
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);

%网络预测输出
an=sim(net,inputn_test);

%网络输出反归一化
BPoutput=mapminmax('reverse',an,outputps);

%% 结果分析

%figure(1)
%plot(BPoutput,'g')
%hold on
%plot(output_test,'-*');
%legend('预测输出','期望输出','fontsize',12)
%title('BP网络预测输出','fontsize',12)
%xlabel('样本','fontsize',12)
%ylabel('输出','fontsize',12)
% print -dtiff -r600 4-3

%预测误差
error=-(BPoutput-output_test);
%figure(1)
%plot(error,'-*')
%title('神经网络预测误差')
%xlabel('样本')
%ylabel('误差')
figure(2)
plot((output_test-BPoutput)./BPoutput,'-*');
title('神经网络预测误差百分比')
xlabel('样本')
ylabel('误差')
%errorsum=sum(abs(error)) 返回小木虫查看更多

今日热帖
  • 精华评论
  • eleven_xia

    因为精度只能那么多啊,神经网络又不是万能的,哪能你想怎么样就怎么样,那本书的原程序我也运行过,远没有书上的精度那么高……

  • 1210080842

    引用回帖:
    2楼: Originally posted by eleven_xia at 2018-07-17 11:14:03
    因为精度只能那么多啊,神经网络又不是万能的,哪能你想怎么样就怎么样,那本书的原程序我也运行过,远没有书上的精度那么高……

    嗯,我现在是想用这个解决哈自己的问题,里面存在些问题,方便的话一起交流哈,不知道可以不

  • 1210080842

    引用回帖:
    4楼: Originally posted by eleven_xia at 2018-07-17 14:00:42
    怕是交流不了哦,我自己也菜得很
    ...

    哎,,好的吧。

  • 小东De_XMC

    多尝试一下,换一下样本试试

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓