数学建模社区-数学中国

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

作者: yqxxqy    时间: 2009-9-2 16:00
标题: 跪求懂神经网络的大哥进来指点下小弟
我刚学习神经网络,练了个简单的例子:第一年工资1000,第二年2000,第三年3000,第四年4000。。。。。依此类推,样本一直到第10年的10000;& Y( Y9 d. p  v9 T4 c
我用前三年的做为输入,第四年的作为目标训练;% Z; G1 b+ W/ n' q
先将样本归一化,但之后做预测就出现问题了,用第8,9,10年的做输入,预测第11年的结果就不对了,个人觉得应该是后面输入数据归一化的问题,但不知道怎么改。
! m7 P; l0 c; E6 ^具体程序如下:+ o1 J; R/ `3 n" O
p=[1000,2000,3000,4000,5000,6000,7000;
. V! k2 C+ L! a! e5 k7 @( {    2000,3000,4000,5000,6000,7000,8000;
5 l; G# u0 T1 c    3000,4000,5000,6000,7000,8000,9000];3 F, w9 s; l! w/ q2 a. E9 N
t=[4000,5000,6000,7000,8000,9000,10000];- \4 e4 j7 v. o2 E8 e3 g
for i=1:3+ f$ W5 S" a2 R' w
P(i,=(p(i,-min(p(i,))/(max(p(i,)-min(p(i,));%归一化
) p8 |# H: A4 {+ nend
& D$ ]; G7 R/ b2 s* C4 }T=(t-min(t))/(max(t)-min(t));, }$ v4 @+ k) r7 ]# f; \3 z* t
net=newff(minmax(P),[3,1],{'logsig','purelin'},'traingdx') - N( `% R" o# k! D% s
inputWeights=net.IW{1,1}; %  当前输入层权值和阀值4 F5 ?0 @: l! [! ~, U$ K5 M
inputbias=net.b{1};
- f  T+ p9 v' X$ K5 \6 ?layerWeights=net.LW{2,1};%  当前网络层权值和阀值1 G$ W& ]- I8 J  }/ @
layerbias=net.b{2};6 J3 M; A. X1 ?9 Q1 m
net.trainParam.show=50; %  设置训练参数                         + v( x4 {) t( n$ C$ j
net.trainParam.lr=0.05;
* w+ G- \& M! anet.trainParam.mc=0.9;
* N( z' O# A& tnet.trainParam.epochs=7000;
6 ~' l! ?, T) d$ x) E, N2 @7 xnet.trainParam.goal=1e-3;
3 M9 H: v9 j9 n2 n" n' J[net,tr]=train(net,P,T);
: O6 \" x3 U( o' Y0 P* w3 |. @y=[8000 9000 10000;
* ?" ^4 u  \- Z5 i2 F/ e    9000 10000 11000;
4 b7 E; T" T* [/ k+ G+ I7 Y: z    10000 11000 12000;];
; w3 [, n  O4 U3 vfor i=1:33 ^- L5 k9 F/ N* `
y(i,=(y(i,-min(p(i,))/(max(p(i,)-min(p(i,));
9 k+ X2 F1 Q# O( O9 s' Mend# p. f) S. r; t; W! [4 H9 H
x=sim(net,y);




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