matlab 预测变化,训练后,Matlab怎么预测结果变化差异很大,哪里的问题?

我的BP网络训练后的结果很稳定,但是预测的结果每次程序运行不一样,哪里的问题,我将程序贴在下面,求高人指点。

P=[1       1     1    1    1    1      1    0     0      0    0    0    0       0;

23.41 32.03 32.03 35.0 35.0 23.41 23.41 23.41 23.41 32.03 35.0 35.0 23.41 23.41;

0.24 0.25  0.17  0.25 0.17 0.25  0.17  0.25  0.17  0.25  0.25 0.17 0.25  0.16;

460  460   460   460  460  235   235   460   460   460   460  460  235   235;

460  460   460   460  460  235   235   460   460   460   460  460  235   235;];

T=[0.1  0.05 0.05 0.03 0.08 0.11 0.12 0.08 0.03 0.05 0.05 0.05 0.1  0.1;

0.12 0.1  0.2  0.05 0.1  0.2  0.26 0.1  0.05 0.08 0.08 0.09 0.12 0.15;

0.25 0.2  0.3  0.15 0.2  0.38 0.45 0.12 0.12 0.1  0.1  0.12 0.15 0.2;

0.4  0.25 0.55 0.28 0.3  0.55 0.58 0.15 0.21 0.12 0.12 0.15 0.17 0.24;

0.58 0.4  0.8  0.5  0.5  0.65 0.7  0.24 0.3  0.18 0.15 0.18 0.2 0.28];

[pn,meanp,stdp,tn,meant,stdp]=prestd(P,T);

m=15;n=10;

net=newff(minmax(pn),[m,n,5],{'tansig','tansig','purelin'},'traingdx');

% 训练网络

net.trainParam.show=10;

net.trainParam.epochs=10000;

net.trainParam.goal=1e-5;

net.trainParam.lr=0.01;

net.trainParam.lr_inc=1.05;

net.trainParam.lr_dec=0.7;

net.trainParam.mc=0.95;

net.trainParam.err_ratio=1.04;

net=train(net,pn,tn);

A3=sim(net,pn);

A=poststd(A3,meant,stdt)

c=[1 0;23.41 32.03;0.18 0.17;460 460;460 460];

cn=trastd(c,meanp,stdp);

as=sim(net,cn);

%c1=tansig(W1*cn,B1);c2=tansig(W2*c1,B2);c3=purelin(W3*c2,B3);

aa=poststd(as,meant,stdt)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值