数学建模社区-数学中国
标题:
跪求懂神经网络的大哥进来指点下小弟
[打印本页]
作者:
yqxxqy
时间:
2009-9-2 16:00
标题:
跪求懂神经网络的大哥进来指点下小弟
我刚学习神经网络,练了个简单的例子:第一年工资1000,第二年2000,第三年3000,第四年4000。。。。。依此类推,样本一直到第10年的10000;
( Z" g; y/ h6 k, k" g7 a9 o
我用前三年的做为输入,第四年的作为目标训练;
s" j3 k# U1 X; I5 u" V2 J
先将样本归一化,但之后做预测就出现问题了,用第8,9,10年的做输入,预测第11年的结果就不对了,个人觉得应该是后面输入数据归一化的问题,但不知道怎么改。
, `4 P7 L, U7 Z" h
具体程序如下:
% s, y+ `1 T" X& K4 B$ M* p
p=[1000,2000,3000,4000,5000,6000,7000;
% m4 Z+ }3 U( X4 c( f; `- E9 d
2000,3000,4000,5000,6000,7000,8000;
1 E1 f" O* W" B' {' o0 z* d& H
3000,4000,5000,6000,7000,8000,9000];
+ q6 g# n0 w( Q4 U& R W
t=[4000,5000,6000,7000,8000,9000,10000];
# M; t( E) f" ?- F$ _9 u, N
for i=1:3
% s, M( e1 l2 m( d$ u4 f
P(i,
=(p(i,
-min(p(i,
))/(max(p(i,
)-min(p(i,
));%归一化
3 k1 L& O' e0 q+ i# F
end
& r- G+ A3 ?/ C9 x1 p# S+ o) X. D
T=(t-min(t))/(max(t)-min(t));
# E V; E* n5 F Z n: v
net=newff(minmax(P),[3,1],{'logsig','purelin'},'traingdx')
: L6 V3 D7 z+ c1 H
inputWeights=net.IW{1,1}; % 当前输入层权值和阀值
0 `+ E( l- w) w5 V! W9 F+ I
inputbias=net.b{1};
: G- a- d1 e5 \* G) b9 E1 S+ e# O
layerWeights=net.LW{2,1};% 当前网络层权值和阀值
, G" k; s3 I2 S7 V5 B
layerbias=net.b{2};
9 K! g/ V# i8 O s" U
net.trainParam.show=50; % 设置训练参数
_0 \0 ?. c, ^; n, ?
net.trainParam.lr=0.05;
# C& ?* I+ |/ C/ K3 E3 E8 z4 Q
net.trainParam.mc=0.9;
6 n G$ Z" I6 X. D* R* H q! V
net.trainParam.epochs=7000;
9 t# Y9 l, o) N3 }2 W8 }. I
net.trainParam.goal=1e-3;
C1 {9 \/ b4 Y/ k) D/ `
[net,tr]=train(net,P,T);
" i( M3 j! E2 E# n3 r% W0 V
y=[8000 9000 10000;
$ {, t: Z2 p, W& g% X0 \& \
9000 10000 11000;
, l7 K+ Y) E) k6 s$ Y. K8 E. {* w
10000 11000 12000;];
, S9 d+ @; E- y
for i=1:3
0 b0 x$ D8 V( o: R1 n' R- C3 R
y(i,
=(y(i,
-min(p(i,
))/(max(p(i,
)-min(p(i,
));
6 _5 I4 |- K2 K2 s( u
end
& x/ s2 ?' `. F, C8 Q
x=sim(net,y);
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5