数学建模社区-数学中国

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

作者: yqxxqy    时间: 2009-9-2 16:00
标题: 跪求懂神经网络的大哥进来指点下小弟
我刚学习神经网络,练了个简单的例子:第一年工资1000,第二年2000,第三年3000,第四年4000。。。。。依此类推,样本一直到第10年的10000;
$ g; s! R4 R; x8 @$ q我用前三年的做为输入,第四年的作为目标训练;
2 R$ K2 L* Y% G  J  M6 n+ J" q先将样本归一化,但之后做预测就出现问题了,用第8,9,10年的做输入,预测第11年的结果就不对了,个人觉得应该是后面输入数据归一化的问题,但不知道怎么改。. b2 v) d* @, U6 `& \( [( y4 e: O1 T
具体程序如下:
2 j$ d% m1 I8 A# ]( t2 U% Gp=[1000,2000,3000,4000,5000,6000,7000;
' E( _7 D( b9 q! l5 y' D( O! b    2000,3000,4000,5000,6000,7000,8000;
* J3 g" [6 U2 S2 q    3000,4000,5000,6000,7000,8000,9000];
* ], P: ~5 K1 L! N7 }2 G5 G# Ft=[4000,5000,6000,7000,8000,9000,10000];2 N0 T: k/ N5 x
for i=1:3; C! Q* M( V' d
P(i,=(p(i,-min(p(i,))/(max(p(i,)-min(p(i,));%归一化
: H8 {; I6 A" @+ }end" J, c" L0 T$ Y! o  l( q
T=(t-min(t))/(max(t)-min(t));, f& w$ {$ p+ q: |$ y
net=newff(minmax(P),[3,1],{'logsig','purelin'},'traingdx') ) O0 \/ R/ _3 n7 l' @& |. y
inputWeights=net.IW{1,1}; %  当前输入层权值和阀值
; _" T& U+ T% O& a4 H3 V2 Ainputbias=net.b{1};
# u! q" V7 z- A! ElayerWeights=net.LW{2,1};%  当前网络层权值和阀值
7 q% K; G/ B; L7 ~" Q6 tlayerbias=net.b{2};
+ |2 e4 n! y5 h6 d; u3 unet.trainParam.show=50; %  设置训练参数                         & y' k; w9 Z2 I+ u, E' }, K  Q9 n) i
net.trainParam.lr=0.05; 2 A! ]+ S* B! }" f7 b7 e& E
net.trainParam.mc=0.9; / q" I) p- p6 X5 y
net.trainParam.epochs=7000;
$ y0 u9 x7 l( k' T+ j: mnet.trainParam.goal=1e-3; ! L% l% ~/ b, R
[net,tr]=train(net,P,T);* {% S$ w6 J- D7 p
y=[8000 9000 10000;
, H; k) K* B$ y8 y# C. Q    9000 10000 11000;
0 e( F4 B+ N3 j1 Q/ O/ @    10000 11000 12000;];5 v% }, v# q+ y2 p1 l6 _0 L6 @/ Y5 Z8 a
for i=1:33 z& K' {. K& z
y(i,=(y(i,-min(p(i,))/(max(p(i,)-min(p(i,));& I7 a' F0 U3 C8 G
end% {$ }0 O0 v. E. v4 H! q, K
x=sim(net,y);




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