数学建模社区-数学中国

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

作者: hanyunxiang    时间: 2010-5-25 17:00
标题: 关于BP神经网络预测
本帖最后由 hanyunxiang 于 2010-5-25 17:03 编辑 , v- n4 {( r  N
6 `0 ?) L) c2 |2 |* o" l
关于BP神经网络预测0 f2 K4 [. A4 x. w! i
7 B3 f& n! `1 J5 j; \+ F
注:里面的笑脸代表冒号(不知道会出现笑脸)
. H  Z7 i- N5 z5 V1 P
) P* `4 u# \8 r6 c
" u% J" N& O8 h4 k8 Y2 j9 t8 h3 |关于BP时间序列预测
, d5 W- q$ [' \$ A7 ^; \8 q4 X程序中x是已知的运输量数值(2000年-2009年),以4个数据为一组,前三个数据作为输入,第四个作为输出,共分7组,前六组训练,隐层节点为7,最后一组检验:
" v( U" y2 d- E- q; P, ux=[13369.2 14873.7 17137.3 17432.5 24193.5 28435.1....7 ^4 o) @% F7 X3 r6 c* Q3 l0 q% p$ ]
    33197.3 38758.6 40576.2 48606.3];0 R7 m5 ^4 ?) F! ]2 H, H
X(1,=(x(1,-min(x(1,))/(max(x(1,)-min(x(1,));(归一化)
: Y2 J! H$ }- {4 Jfor i=1:7$ N8 W0 A: K) M+ g, Q
    X1(i,=[X(i) X(i+1) X(i+2) X(i+3)];
, l: T5 w7 D. S. i4 x. ^9 S4 O1 F3 Bend
6 H! j% A; V7 u3 E' `X2=(X1(:,1:3))';
. t+ i( ^  j& k5 y0 u6 tT2=(X1(:,4))';
$ J) p& A) R7 m9 D( X8 zX3=X2(:,1:6);
4 X) C' K- h6 C+ A6 {' x- rT3=T2(:,1:6);, j4 n4 s( P6 L4 X5 g( e3 k
net=newff(minmax(X3),[7 1],{'logsig','tansig'},'trainlm');
! g7 V% T2 j+ J! [4 {7 V/ Xnet.trainParam.epochs=1000;
+ }4 t7 L+ J  X7 m* B: l( v9 gnet.trainParam.goal=0.000001;
( z) L5 z/ W! C# H$ pLP.lr=0.1;
7 h& H; M; {6 W% O* ynet=train(net,X3,T3);) y# L( C4 F. _' D9 u
y1=sim(net,X3);
0 U" V4 d: ?% P# h0 R5 H) L. s  G0 Q9 ?, m+ x( E5 E' D3 ?
以下是检验:9 f+ x, @$ K1 r8 d1 d) f( o. b8 D
2 I7 [2 d1 L2 J- W7 f9 a. l- M/ M
x_test=X2(:,7);
' s) U& A+ @& L: Dy_test=sim(net,x_test)
% w! t! j" w5 cY_test=y_test*(max(x(1,)-min(x(1,))+min(x(1,)(反归一化)+ {3 m3 a+ H2 ]$ @
检验效果还不错;- ?1 c5 W* ~/ K1 J

- S4 U- n+ J" {5 |但运用以下命令在预测2010年运输量时,向量yc1为2007、2008、2009年运输量归一化的数值;
( W+ N: ]" o. V  h# M为什么反归一化输出和2009年数值一样,怎么回事呢???初学者盼解答??
5 \/ [, Y; r  a# s: q
4 E  L1 S. ~$ i, p# o* e2 ]yc1=[0.7205 0.7721 1.0000]';
8 e/ x  D+ Y' p+ q: j% B8 fjg1_test=sim(net,yc1(:,1))- N! }6 m) X) q, K" _4 h3 s! m
Jg1_test=jg1_test*(max(x(1,)-min(x(1,))+min(x(1,)(反归一化)
5 ~& s7 N$ y! {0 l4 p4 g

作者: zerodingying    时间: 2012-2-4 15:41
感谢楼主,很不错的说。。。。。
作者: alair002    时间: 2012-2-5 18:42
好贴,顶起,慢慢看,thank you1030226479888439
作者: haoren1990    时间: 2012-3-6 10:32
y1=sim(net,X3);
作者: haoren1990    时间: 2012-3-6 10:36
X3不是你的训练数据吗,前面的网络是根据X3和目标输出来训练的,结果你又把X3作为最后的网络输出,结果肯定是目标输出啊(已知的2009的值)与归不归一没有关系。
作者: 沙漠海滩    时间: 2012-3-6 22:07
这是什么啊?楼主
作者: KuaitouKid    时间: 2012-3-14 02:15
改改参数应该就不一样了,神经网络的结果就是有点蛋疼……
作者: 1578233196    时间: 2013-8-9 14:27

作者: 1578233196    时间: 2013-8-9 14:27

作者: 1578233196    时间: 2013-8-9 14:27

作者: 1578233196    时间: 2013-8-9 14:27





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