数学建模社区-数学中国
标题:
BP神经网络预测问题
[打印本页]
作者:
jthawking
时间:
2009-9-1 19:44
标题:
BP神经网络预测问题
以下是我写的一段BP神经网络预测的代码,模型建好后,不知怎样预测下一年的T值,哪位高手来指导下...
: e- o/ B+ O* E0 s. ]' _1 c; F
%X为原始输入数据
+ C$ ^2 j+ J' S3 D) `
P=[727000 297.35 327.53 2658 6.31 68.3 15948 737 16316 583.89 1.96;
/ J3 Q% y# g5 n r) S7 Z
30619 325.00 390.51 2763 6.94 69.6 17130 789 18600 707.67 2.28;
/ Q6 e6 o8 B& t: C8 J' `" U
33282 423.00 474.63 2801 5.73 69.7 17866 894 19886 861.88 2.32;
" a1 P/ [6 d C0 b7 y, n. D
33689 467.57 569.55 2887 7.76 69.8 18961 1015 20249 941.99 2.38;
5 w% x @+ C1 L9 K5 |" [- M4 Q
41020 538.17 616.25 2920 8.23 69.7 19688 1198 21626 1082.6 2.73;
3 C( D7 x( b4 I% A: x' y* Y
43344 832.04 686.37 3495 8.87 68.3 24465 1361 23544 1373.4 2.89;
, c @6 v8 F3 [' V1 n! t- t |: k
46030 941.94 788.15 3495 9.57 68.2 24814 1710 24941 1756.5 2.82;
" r: S k- u0 y/ ]
53887 1095.13 969.1 4885 9.65 68.7 36149 2100 25936 2199.5 3.08;
6 Y4 u1 t% |% }% M8 e' `
59271 1250.64 1092.6 5376 10.11 69.2 43008 2314 26596 2625.4 3.56;
8 @( z" b6 x+ ]% a
64507 1437.67 1176.1 6091 15.05 69.2 51946 2500 28494 3229.4 3.98;
0 D! u. a2 o: u& T2 l
70597 1671.29 1273.7 7305 16.81 69.2 65745 2614 29628 3744.7 4.98;
3 s7 V% s: I- n1 {/ o# A
79221 1905.03 1345 8023 18.6 69.1 70346 2798 30063 3792.6 5.1;
9 p5 i- g0 o; A" G* X
78812 2207.88 927.16 8328 20.52 69.3 71088 2964 30904 3951.64 5.21]';
2 s: Q) n# P/ S. g3 i2 f
%为原始目标数据
2 I9 t3 g3 l$ B5 u% K1 M
T=[3.1,3.6,4.2,4.8,6.7,9.1,13,18.9,29,51.1,78.2,103.5,128];
Q9 \) g6 N& H
%原始数据归一化
! l( l, y2 g" p0 c/ F3 R
[pn,minp,maxp]=premnmx(P);
. ^) i, l7 c4 M
[tn,mint,maxt]=premnmx(T);
- N6 O1 M4 A6 B1 S: A( q
%设置网络隐单元的神经元数%建立相应的BP网络
" `. n4 Y: g h# C; e: c' R0 G. I% F
net=newff(minmax(pn(:,1:13)),[10,1],{'tansig','purelin'},'trainlm');
6 a) B7 u% W) A$ }' H
%当前输入层权值和阈值
% ^/ A; m8 t. ]! T8 x% P$ I+ z- M
inputWeights=net.IW{1,1}
/ }) K( j' j, V5 A g: Z1 b" W
inputbias=net.b{1}
% h" Y0 _7 p2 H q6 W. `9 q
%当前网络层权值和阈值
& D" @1 |, p2 h7 J- ]/ T
layerWeights=net.LW{2,1}
B) c/ x2 R3 i3 I2 t7 ~: ^$ `/ `
layerbias=net.b{2}
2 w1 W2 g8 r) g, q- ~$ \* D
net=init(net);
4 B @$ O2 ^7 f9 C$ h" g
% 网络训练代数
; L! l3 m* n3 s' {' I9 K
net.trainParam.epochs=10000;
3 T7 ~! q; }3 z5 s
% 网络训练目标误差
* C7 p3 [- D$ f# j6 ?1 |) g
net.trainParam.goal=0.000001;
1 Z+ v- [ U1 X3 b6 E8 I
% 网络训练动量系数
. k* r7 j% B9 {
net.trainParam.mc = 0.9;
" ?& J* [+ ^. P; _
% 网络学习速率
4 p# b/ b6 q# I: }5 ]6 o
net.trainParam.lr=0.05;
0 i3 P& R! k5 D/ h! z% i6 ~
%调用TRAINGDM算法训练BP网络
4 c% s( }8 @# R+ N
net=train(net,pn(:,1:13),tn(1:13));
, o; V% V7 v% \9 d7 X
t_sim=sim(net,pn);
" J+ T% y8 s2 N# A
t_sim=postmnmx(t_sim,mint,maxt)
( k( i4 M0 W1 s4 q0 i9 P+ M. X8 s
E=t_sim-T
( b7 k0 o& v, Z$ [$ d2 x2 B
M=sse(E)
6 J& ^" }7 g6 }6 I: u8 o
N=mse(E)
; y" `1 ]) p; _: n& [* y
figure(1)
5 X0 I- v% f* R# _; `* V2 I4 G
i=1:1:length(t_sim);
- P4 T6 d, |9 x& C+ G4 k% C9 @
j=1:length(T);
- h, G. `6 i2 w F
plot(i+1995,t_sim,'r',j+1995,T,'bo')
' C2 b0 K J9 n* l! @9 r6 T. {
legend('模拟数据','原始数据')
- d: I9 ^; p) @" L, a9 U
Xlabel('年份');Ylabel('数量')
7 T* ^( r4 z& @9 |
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大写了
0 U6 |( Y7 h9 |+ N: G; \
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5