数学建模社区-数学中国

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

作者: hanyunxiang    时间: 2010-5-25 17:00
标题: 关于BP神经网络预测
本帖最后由 hanyunxiang 于 2010-5-25 17:03 编辑 & m* ]$ z4 c* [' `, ~$ S
/ C  _$ o5 ?9 ^6 ?
关于BP神经网络预测. E* c$ P3 @) m' ~* l9 J

# X& N) r9 y4 [1 Q注:里面的笑脸代表冒号(不知道会出现笑脸)! n' m, E, I3 _8 G/ v

4 X! u: M! ^# A' f) R0 B& R- }8 a
; Z+ q* X: {- S! ~# t' k关于BP时间序列预测' M( I+ o; T# C# F- S
程序中x是已知的运输量数值(2000年-2009年),以4个数据为一组,前三个数据作为输入,第四个作为输出,共分7组,前六组训练,隐层节点为7,最后一组检验:6 X/ j8 z) K) g
x=[13369.2 14873.7 17137.3 17432.5 24193.5 28435.1....
' t# G  U1 K7 T% `  Y    33197.3 38758.6 40576.2 48606.3];
' d* _& U- N3 q- eX(1,=(x(1,-min(x(1,))/(max(x(1,)-min(x(1,));(归一化)4 U: S& B3 m$ d  X/ q
for i=1:7
/ v( d  R6 v0 u3 [4 x& S. \    X1(i,=[X(i) X(i+1) X(i+2) X(i+3)];
( z% X/ o8 `9 ]/ H- a% h0 A. Jend" k1 {: n9 Q5 J! G0 h6 R
X2=(X1(:,1:3))';0 i% K9 W0 U' v2 ~
T2=(X1(:,4))';1 H# b$ F& ^% m9 o2 q, n
X3=X2(:,1:6);
* \9 r, y2 `: z+ GT3=T2(:,1:6);5 u: Y* K1 e1 O, l! |2 t. }
net=newff(minmax(X3),[7 1],{'logsig','tansig'},'trainlm');
0 h* J# E6 u) o6 u- T( anet.trainParam.epochs=1000;3 h2 ]6 n5 E, O$ X3 \" Y
net.trainParam.goal=0.000001;  l1 ~; N, j6 @  B% S% G. Q% u) {
LP.lr=0.1;! N2 m4 z! S$ s" w/ k
net=train(net,X3,T3);
9 C9 j& B1 a( S+ O) @y1=sim(net,X3);4 {- {9 X$ I9 @/ n& e0 E* M
: r% {) L0 R, K7 B, }7 a( }: R% j
以下是检验:  O# S* ?3 b% X2 ^
/ u  x! b* [2 _# I& F
x_test=X2(:,7);
  w1 B; H  ^, qy_test=sim(net,x_test)5 S& G% Q& e, S1 z
Y_test=y_test*(max(x(1,)-min(x(1,))+min(x(1,)(反归一化)
) T3 }  A% J7 e检验效果还不错;
( O0 A8 ~* ~) c
  R9 \1 O, `* \但运用以下命令在预测2010年运输量时,向量yc1为2007、2008、2009年运输量归一化的数值;
( y* w5 V/ v% t( ]* V5 v为什么反归一化输出和2009年数值一样,怎么回事呢???初学者盼解答??5 s) {9 B  Z) `8 s/ b. m9 e

+ G6 F8 t2 f3 I8 Q' {$ cyc1=[0.7205 0.7721 1.0000]';
! K8 M/ z& R& _# t6 H: r" h4 ]jg1_test=sim(net,yc1(:,1))
! l' `* l7 A$ n( @Jg1_test=jg1_test*(max(x(1,)-min(x(1,))+min(x(1,)(反归一化)+ S' y, r; V% ?' D

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