数学建模社区-数学中国
标题:
关于BP神经网络预测
[打印本页]
作者:
hanyunxiang
时间:
2010-5-25 17:00
标题:
关于BP神经网络预测
本帖最后由 hanyunxiang 于 2010-5-25 17:03 编辑
, R" E' h* U+ N( X) d
/ E0 B" ]6 x3 m- w
关于BP神经网络预测
0 i5 V/ G9 g7 T; D# f; H
& P" I$ W* i+ ~- ~: D( {0 z) l5 s
注:里面的笑脸代表冒号(不知道会出现笑脸)
' D \0 y. u& _1 M( g
5 Y, Q5 |3 e& l0 ]0 s7 V! o
( V( ?: O# f5 ]
关于BP时间序列预测
& ^$ T2 k* Q8 Y+ h' ?# N
程序中x是已知的运输量数值(2000年-2009年),以4个数据为一组,前三个数据作为输入,第四个作为输出,共分7组,前六组训练,隐层节点为7,最后一组检验:
$ [& s8 \1 {! n$ W$ q
x=[13369.2 14873.7 17137.3 17432.5 24193.5 28435.1....
2 N9 Q" j5 w" u+ n
33197.3 38758.6 40576.2 48606.3];
) e* @6 j. r* X1 N1 D: R8 ^' D
X(1,
=(x(1,
-min(x(1,
))/(max(x(1,
)-min(x(1,
));(归一化)
/ c y1 m) z' e( C, Q0 K( V/ p
for i=1:7
' f6 r3 A. X* k3 M G. |
X1(i,
=[X(i) X(i+1) X(i+2) X(i+3)];
! D* q, r) c1 |% H/ V, D. s
end
# l7 T) `$ }5 |
X2=(X1(:,1:3))';
# r$ |4 S5 l6 V; d
T2=(X1(:,4))';
4 i* \- P# d& z, `
X3=X2(:,1:6);
: d( `8 D% t. I, w
T3=T2(:,1:6);
7 V2 B. e% R3 C8 `* s& k
net=newff(minmax(X3),[7 1],{'logsig','tansig'},'trainlm');
6 S9 c! |/ f- C
net.trainParam.epochs=1000;
4 a+ Z' a B7 W( y
net.trainParam.goal=0.000001;
* v1 i6 u: [# F! y* v+ f: P& g% a
LP.lr=0.1;
/ `; a+ T' d" @( n
net=train(net,X3,T3);
; k# b+ u; Y8 j) c( H; K
y1=sim(net,X3);
: @4 s4 |( u; C1 R
- N, x! ]+ n7 O; b/ R: Y. i ^5 |
以下是检验:
{4 r1 a+ |, ^6 M' l
T; i) ~- h0 y# R6 }
x_test=X2(:,7);
k/ C7 c! F6 F6 q# C4 D
y_test=sim(net,x_test)
7 z4 j8 r# V% p) T+ `
Y_test=y_test*(max(x(1,
)-min(x(1,
))+min(x(1,
)(反归一化)
9 K: G. U( v5 r: r4 ~3 |
检验效果还不错;
Y7 I( G9 [1 \* U
B& n! G$ j5 x* |; T/ ?/ i
但运用以下命令在预测2010年运输量时,向量yc1为2007、2008、2009年运输量归一化的数值;
- m2 s8 ~2 Q( j. N
为什么反归一化输出和2009年数值一样,怎么回事呢???初学者盼解答??
9 s' n" g' N* N; O8 t0 ~: d
: Z; k9 t: ^' A
yc1=[0.7205 0.7721 1.0000]';
6 O' i& c+ T! u8 ]# ?. ?4 P
jg1_test=sim(net,yc1(:,1))
9 @8 c# ^* t( S* k
Jg1_test=jg1_test*(max(x(1,
)-min(x(1,
))+min(x(1,
)(反归一化)
2 E }: z! w+ f4 t: K+ C' {* ~
作者:
zerodingying
时间:
2012-2-4 15:41
感谢楼主,很不错的说。。。。。
作者:
alair002
时间:
2012-2-5 18:42
好贴,顶起,慢慢看,thank you
1030226479888439
作者:
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