数学建模社区-数学中国
标题:
跪求懂神经网络的大哥进来指点下小弟
[打印本页]
作者:
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% G
p=[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# F
t=[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 A
inputbias=net.b{1};
# u! q" V7 z- A! E
layerWeights=net.LW{2,1};% 当前网络层权值和阀值
7 q% K; G/ B; L7 ~" Q6 t
layerbias=net.b{2};
+ |2 e4 n! y5 h6 d; u3 u
net.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: m
net.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:3
3 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