这个BP网络误差怎么这么大,怎么也达不到精度

2019-07-17 14:26发布

clear;
clc;
P=[0.501 0.504 0.489;0.601 0.554 0.489;0.601 0.653 0.49;0.702 0.803 0.551;0.702 0.903 0.652;0.852 1.003 0.652;0.852 1.073 0.752;0.952 1.103 0.752;0.952 1.233 0.802;1.052 1.252 0.802;1.151 1.357 0.802;1.151 1.613 1.001;1.301 1.702 1.001;1.301 1.872 1.101;1.451 2.082 1.101;1.451 2.052 1.251;1.652 2.142 1.251;1.652 2.252 1.401;1.851 2.312 1.401;1.851 2.401 1.551;2.051 2.504 1.551;2.051 2.702 1.8;2.201 2.832 1.8;2.201 2.952 1.951;2.301 3.051 1.951;2.301 3.201 2.151;2.501 3.251 2.151;2.7 3.501 2.301;2.951 3.501 2.301;2.951 3.8 2.901;3.201 3.8 2.901;3.4 4.151 3.3;3.75 4.4 4.1;4.45 4.4 4.1;]';
T=[0 0;50 0;50 5;100 10;100 15;150 15;150 20;200 20;200 25;250 25;300 25;300 35;350 35;350 40;400 40;400 45;450 45;450 50;500 50;500 55;550 55;550 65;600 65;600 70;650 70;650 75;700 75;750 80;800 80;800 85;850 85;900 90;950 100;1000 100;]';
net=newff(minmax(P),[5,2],{'tansig' 'purelin'},'trainscg');
net.trainParam.epochs=20000;
net.trainParam.goal=1;
net.trainParam.min_grad=0.1;
net.trainParam.show=200;
net.trainParam.time=inf;
net=train(net,P,T);
Y=sim(net,P);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
千年未按
2019-07-17 18:47
我不明白你的数据是什么意思,似乎是拿P,输出T。但是你好像没有设置训练数据和检验数据,我就从你的数据随便提取了20组做训练,14组做检验。第一个变量输出在误差在1%以内,第二个在3%以内,拟合还是非常不错的。

一周热门 更多>