数学建模社区-数学中国
标题:
关于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, u
x=[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 J
for 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 B
end
6 H! j% A; V7 u3 E' `
X2=(X1(:,1:3))';
. t+ i( ^ j& k5 y0 u6 t
T2=(X1(:,4))';
$ J) p& A) R7 m9 D( X8 z
X3=X2(:,1:6);
4 X) C' K- h6 C+ A6 {' x- r
T3=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/ X
net.trainParam.epochs=1000;
+ }4 t7 L+ J X7 m* B: l( v9 g
net.trainParam.goal=0.000001;
( z) L5 z/ W! C# H$ p
LP.lr=0.1;
7 h& H; M; {6 W% O* y
net=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: D
y_test=sim(net,x_test)
% w! t! j" w5 c
Y_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 f
jg1_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 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