数学建模社区-数学中国

标题: 跪求懂神经网络的大哥进来指点下小弟 [打印本页]

作者: 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* pp=[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+ Iinputbias=net.b{1};
: G- a- d1 e5 \* G) b9 E1 S+ e# OlayerWeights=net.LW{2,1};%  当前网络层权值和阀值
, G" k; s3 I2 S7 V5 Blayerbias=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 Vy=[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- yfor i=1:30 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( uend
& x/ s2 ?' `. F, C8 Qx=sim(net,y);




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5