数学建模社区-数学中国

标题: BP神经网络预测问题 [打印本页]

作者: jthawking    时间: 2009-9-1 19:44
标题: BP神经网络预测问题
以下是我写的一段BP神经网络预测的代码,模型建好后,不知怎样预测下一年的T值,哪位高手来指导下...
, `  {% g! H$ {( S%X为原始输入数据
* K1 Q& `% z) n. g  EP=[727000 297.35  327.53  2658 6.31  68.3 15948 737  16316 583.89 1.96;/ P6 D& e, w8 z7 Y
30619 325.00  390.51  2763 6.94  69.6 17130 789  18600 707.67 2.28;) R% Q( M7 q. @! Z" Z+ v/ J% q
33282 423.00  474.63  2801 5.73  69.7 17866 894  19886 861.88 2.32;
. n' j6 M  C( k33689 467.57  569.55  2887 7.76  69.8 18961 1015 20249 941.99 2.38;+ \- y: u" S# W( Z9 j. B
41020 538.17  616.25  2920 8.23  69.7 19688 1198 21626 1082.6 2.73;
0 [) s" c) X$ O43344 832.04  686.37  3495 8.87  68.3 24465 1361 23544 1373.4 2.89;
7 m4 n7 J) C* G$ r) _3 t46030 941.94  788.15  3495 9.57  68.2 24814 1710 24941 1756.5 2.82;/ T% P1 J  O- Y) c+ S
53887 1095.13 969.1   4885 9.65  68.7 36149 2100 25936 2199.5 3.08;
8 l% G/ @( ^2 Q6 \8 [2 i. V+ Y6 y! m59271 1250.64 1092.6  5376 10.11 69.2 43008 2314 26596 2625.4 3.56;
; f# m( n  C$ b2 K' S64507 1437.67 1176.1  6091 15.05 69.2 51946 2500 28494 3229.4 3.98;5 l$ O7 m8 E0 J" A/ y
70597 1671.29 1273.7  7305 16.81 69.2 65745 2614 29628 3744.7 4.98;' s) v5 J+ u& n$ M  u  h0 I
79221 1905.03 1345    8023 18.6  69.1 70346 2798 30063 3792.6 5.1;. D$ [% M. k7 b8 Y1 n' H
78812 2207.88 927.16  8328 20.52 69.3 71088 2964 30904 3951.64 5.21]';
- d/ i  p1 [1 s) l%为原始目标数据) W6 t' C) s0 E9 {) S/ U) `6 a
T=[3.1,3.6,4.2,4.8,6.7,9.1,13,18.9,29,51.1,78.2,103.5,128];1 e) i: U7 B2 I' i) D
%原始数据归一化
5 O6 z8 T3 I# W- J; n, |% i[pn,minp,maxp]=premnmx(P);2 p. E0 p$ C6 o  J6 s
[tn,mint,maxt]=premnmx(T);
! }7 T5 s) L( R5 k0 Y0 ]%设置网络隐单元的神经元数%建立相应的BP网络9 Q& D! c+ B4 u: ~9 e  E
net=newff(minmax(pn(:,1:13)),[10,1],{'tansig','purelin'},'trainlm');) H8 ?  a  a9 a2 c* i
%当前输入层权值和阈值
6 S7 F5 d- P3 w( t) winputWeights=net.IW{1,1} 5 G# K+ x* E) G* V
inputbias=net.b{1}
1 `+ t( ^- {; @( ]' s& S%当前网络层权值和阈值 1 ~5 M& c6 h  ]5 W1 E: H; x8 l. K
layerWeights=net.LW{2,1}
1 q; n/ C7 j: W; [8 n; u) ilayerbias=net.b{2}
8 J3 R/ G& h' anet=init(net);
4 p% }% y% S, ^! }% 网络训练代数
# A9 c2 v2 w% bnet.trainParam.epochs=10000;
6 N4 l1 Y4 ~) v0 F' w/ f4 F' b7 h% 网络训练目标误差8 j9 m$ }2 X* s3 H+ v
net.trainParam.goal=0.000001;
; y, i& }+ r- T- m0 N% y3 S% 网络训练动量系数
" I/ X" v9 P9 Q+ P& [net.trainParam.mc = 0.9;     \  W/ Z% O, w# A
% 网络学习速率
& D2 G. [/ ^# ]! \) Dnet.trainParam.lr=0.05;+ [) q) Z& n# p
%调用TRAINGDM算法训练BP网络
. W1 |( I  y) T9 p( [/ Cnet=train(net,pn(:,1:13),tn(1:13));
3 J7 K8 J! m( M1 Lt_sim=sim(net,pn);$ J5 h! [( ^' ]
t_sim=postmnmx(t_sim,mint,maxt)
. W/ O$ @  V9 `E=t_sim-T1 E( \0 ]8 [" W& l2 B" \/ z7 y3 E
M=sse(E): {! X9 g5 j9 Z9 U% X/ [3 P+ C
N=mse(E)& A) |' J5 n# [2 V. V, i
figure(1)
2 ?+ X1 {, g7 oi=1:1:length(t_sim);
; q3 W5 J/ Y2 U! q& f  j1 nj=1:length(T);
4 }' r; ?5 x8 M" R1 Q0 uplot(i+1995,t_sim,'r',j+1995,T,'bo')) C% O$ L; ?, y# G
legend('模拟数据','原始数据')
: S2 G) ?8 C/ D, y: k  IXlabel('年份');Ylabel('数量')+ H6 y8 F6 k8 Z. Q
title('BP神经网络')
作者: 追梦者    时间: 2009-9-5 20:45
看看O(∩_∩)O~
作者: Rosierl    时间: 2009-9-6 17:02
狂谢Ing……
作者: A123J    时间: 2009-11-12 13:16
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!      eeeeeeeee
作者: 泽泽    时间: 2009-11-18 17:23
这个问题我也正想问,你解决了没?
作者: zhuangqg6855    时间: 2010-4-1 16:39
嗯,先看看再说!!!!!!!!!!!!!!!!!!!!
作者: zerodingying    时间: 2012-2-4 15:54
感谢楼主,很不错的说。。。。。
作者: 123水无痕    时间: 2012-2-24 15:46
我也想知道……求高手指点
作者: 0йly_    时间: 2012-8-31 17:48
如果你要预测的话,你可以先输入一个预测的值,P_test=[];out=sim(net,P_test')~~希望对你有用
作者: 0.9清1.8清2.7清    时间: 2012-9-1 18:06
厉害啊!楼主!!!!!牛!
作者: melissa513    时间: 2012-9-18 19:30
看不是很懂啊,感觉自己还没有学到这里呢
作者: 左手边623    时间: 2012-9-19 12:12
//////////////////////////////////
作者: 狼之魂汪洋    时间: 2014-8-5 09:49
楼主威武。。。。。
作者: 月关    时间: 2014-8-6 10:24
看不懂。。。。。
作者: 月关    时间: 2014-8-6 10:24
嗯,先看看再说!!!!!!!!!!!!!!!!!!!!
作者: 月关    时间: 2014-8-6 10:24
嗯,先看看再说!!!!!!!!!!!!!!!!!!!!
作者: 月关    时间: 2014-8-6 10:24
嗯,先看看再说!!!!!!!!!!!!!!!!!!!!
作者: 狼之魂汪洋    时间: 2014-8-6 13:49
楼主的问题最后修改完了么?能不能发一份代码学习学习,现在有也遇到同样的问题了,不知道怎么解决了,求帮助。1345134018@qq.com
作者: 杨辰宇    时间: 2017-8-25 20:33
X和Y大写了
8 c+ U% |2 L8 k4 Y




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5