数学建模社区-数学中国

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

作者: hanyunxiang    时间: 2010-5-25 17:00
标题: 关于BP神经网络预测
本帖最后由 hanyunxiang 于 2010-5-25 17:03 编辑 8 j7 e% C& b, y# [4 ?4 J  a
; `/ L0 a7 w3 z/ c' x
关于BP神经网络预测' L! J# A) I$ ~7 O# u

8 k/ _4 d  @5 Q& X& D5 a注:里面的笑脸代表冒号(不知道会出现笑脸)
1 F3 b; T6 G3 b2 Z
5 K: i' U7 I8 N5 T6 |: z; r  w) s8 I9 H) u* m& |) x
关于BP时间序列预测0 X/ e# F) \7 w, O
程序中x是已知的运输量数值(2000年-2009年),以4个数据为一组,前三个数据作为输入,第四个作为输出,共分7组,前六组训练,隐层节点为7,最后一组检验:
: q& @9 E+ P( R3 m* ~2 Lx=[13369.2 14873.7 17137.3 17432.5 24193.5 28435.1....
) u( C$ K% l# H+ w    33197.3 38758.6 40576.2 48606.3];+ g' Z, J4 e9 _6 ]" d# f
X(1,=(x(1,-min(x(1,))/(max(x(1,)-min(x(1,));(归一化)
( |: I5 _& Q+ ?for i=1:7
: A( B1 J7 M9 C5 |    X1(i,=[X(i) X(i+1) X(i+2) X(i+3)];
3 M# w% b2 T! oend
4 I0 p7 [9 v7 T, o2 yX2=(X1(:,1:3))';3 s) b6 {6 P% ^! G! z! I
T2=(X1(:,4))';
! r  E) S/ P1 d, e* l/ F, vX3=X2(:,1:6);
' F8 B6 H( r- Z9 MT3=T2(:,1:6);" [# E7 e9 g8 o
net=newff(minmax(X3),[7 1],{'logsig','tansig'},'trainlm');- t+ R& K4 g4 J6 H7 O
net.trainParam.epochs=1000;
9 f: W  _5 a: w' \net.trainParam.goal=0.000001;; n, J# k" \5 P6 v
LP.lr=0.1;
3 k; _% ]# }1 ~/ i! Onet=train(net,X3,T3);0 k! N- n& B! T# P1 n+ z
y1=sim(net,X3);  K, Y; M& r0 d6 S4 E

, b) ]" X1 [: m8 \6 E. H( x5 \/ p以下是检验:. o+ f: c! l* V

* b" K4 O7 }2 S/ V. g% J2 g3 ex_test=X2(:,7);
% R  K( C3 H& @  Dy_test=sim(net,x_test)
& }  c+ _: _9 \! J* YY_test=y_test*(max(x(1,)-min(x(1,))+min(x(1,)(反归一化)
7 J$ z" M7 e+ r4 ^1 |检验效果还不错;
3 s- m7 @; K8 ]' G3 V! K- K2 \. G: g
& ^6 @3 T5 |9 y6 b$ i2 K! s但运用以下命令在预测2010年运输量时,向量yc1为2007、2008、2009年运输量归一化的数值;
. Z1 R+ L, a6 [3 M, _为什么反归一化输出和2009年数值一样,怎么回事呢???初学者盼解答??
" v' r. W/ R. G9 F8 B8 a! n$ P1 |  _6 Y; @  D+ l6 f1 l6 m% j
yc1=[0.7205 0.7721 1.0000]';
$ O; b/ ~$ @: R- Gjg1_test=sim(net,yc1(:,1))
- e$ `) i  w2 J7 `' u# G1 GJg1_test=jg1_test*(max(x(1,)-min(x(1,))+min(x(1,)(反归一化), K) g8 E) K7 v1 X. d8 W

作者: 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