数学建模社区-数学中国

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

作者: yqxxqy    时间: 2009-9-2 16:00
标题: 跪求懂神经网络的大哥进来指点下小弟
我刚学习神经网络,练了个简单的例子:第一年工资1000,第二年2000,第三年3000,第四年4000。。。。。依此类推,样本一直到第10年的10000;2 ^% m1 y) \$ j4 p
我用前三年的做为输入,第四年的作为目标训练;1 L5 [8 d3 m0 m2 _* o  K
先将样本归一化,但之后做预测就出现问题了,用第8,9,10年的做输入,预测第11年的结果就不对了,个人觉得应该是后面输入数据归一化的问题,但不知道怎么改。) o' B. ]+ U0 K$ }: [/ E& p+ f
具体程序如下:4 w1 T) @6 x( ^9 D0 ]- }
p=[1000,2000,3000,4000,5000,6000,7000;& B: @' j5 G$ p  a
    2000,3000,4000,5000,6000,7000,8000;6 N/ k8 h  D5 x; `" R
    3000,4000,5000,6000,7000,8000,9000];7 s! R& `/ L* z1 {/ t& W
t=[4000,5000,6000,7000,8000,9000,10000];
$ _- R3 {& ]: p. _for i=1:3% t& M; b( M) L, g$ \2 H/ Y5 m
P(i,=(p(i,-min(p(i,))/(max(p(i,)-min(p(i,));%归一化6 z& {; M9 n9 Q  ?. K/ ~4 m) M
end
% N6 f. W1 p1 z( AT=(t-min(t))/(max(t)-min(t));6 T+ @& J& S1 i9 W
net=newff(minmax(P),[3,1],{'logsig','purelin'},'traingdx')   V2 r! V! l: G
inputWeights=net.IW{1,1}; %  当前输入层权值和阀值
5 _2 \$ V) K' Minputbias=net.b{1};
9 Q% o) \/ B5 flayerWeights=net.LW{2,1};%  当前网络层权值和阀值
" E, t! n. M1 u& I2 s* ~( r, xlayerbias=net.b{2};
; L& o8 E# F2 ^net.trainParam.show=50; %  设置训练参数                        
9 X% g5 d% X# j! knet.trainParam.lr=0.05;
% j0 f, y. d2 B3 y; c/ c5 rnet.trainParam.mc=0.9;
& j8 k% J: z& ~net.trainParam.epochs=7000; ; t9 i$ k: x* W) Z
net.trainParam.goal=1e-3; 9 Z4 d$ p8 m9 m
[net,tr]=train(net,P,T);
/ \( N7 i' \& g6 F" f9 Cy=[8000 9000 10000;
/ r1 q1 g& ]! L: R* y: }9 K& x    9000 10000 11000;
8 q. v( F2 [. s- N0 z, j" u    10000 11000 12000;];
2 ~7 O5 t4 v. kfor i=1:38 ^& e3 ?* |+ P( v; |1 `& q
y(i,=(y(i,-min(p(i,))/(max(p(i,)-min(p(i,));. i& c; X6 o% O  M2 X
end8 Z3 L' x8 B" o+ c# n( ?+ W* g
x=sim(net,y);




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