数学建模社区-数学中国

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

作者: yqxxqy    时间: 2009-9-2 16:00
标题: 跪求懂神经网络的大哥进来指点下小弟
我刚学习神经网络,练了个简单的例子:第一年工资1000,第二年2000,第三年3000,第四年4000。。。。。依此类推,样本一直到第10年的10000;
5 Z* N5 X& d; @9 D1 S我用前三年的做为输入,第四年的作为目标训练;
" O: y, O9 R0 N3 e( d, d9 f先将样本归一化,但之后做预测就出现问题了,用第8,9,10年的做输入,预测第11年的结果就不对了,个人觉得应该是后面输入数据归一化的问题,但不知道怎么改。
6 g  n4 V# {8 b  R9 s6 K, N具体程序如下:
' k9 [, W' f3 f* `. ?3 Sp=[1000,2000,3000,4000,5000,6000,7000;
% c- q. }( k- S" U. S    2000,3000,4000,5000,6000,7000,8000;7 _6 c; _+ \! A9 @& _$ w/ ~
    3000,4000,5000,6000,7000,8000,9000];
% k( R" n4 w. \0 G1 j9 ]t=[4000,5000,6000,7000,8000,9000,10000];
: g2 ?5 J( L* ?0 r6 k! J6 zfor i=1:3
; Y  m/ y5 D( g. tP(i,=(p(i,-min(p(i,))/(max(p(i,)-min(p(i,));%归一化
. v, D9 |- ]5 \5 M: k) gend
& z- j  w; {+ B( @- }T=(t-min(t))/(max(t)-min(t));, Q1 k! g' j7 |1 L+ k. k
net=newff(minmax(P),[3,1],{'logsig','purelin'},'traingdx') $ D, H* Z$ o! g) Q* o$ S
inputWeights=net.IW{1,1}; %  当前输入层权值和阀值/ B. }/ ?) ?) M7 |( A3 c
inputbias=net.b{1};
0 O) y1 m: e- I- ~4 e3 m; JlayerWeights=net.LW{2,1};%  当前网络层权值和阀值4 |0 T3 ]7 W6 K7 n/ M6 z# L
layerbias=net.b{2};
3 H6 V+ w3 R6 p% x9 f" inet.trainParam.show=50; %  设置训练参数                         . g& A8 R* f! `) h( G
net.trainParam.lr=0.05; 7 b8 ^( s+ j0 F2 B
net.trainParam.mc=0.9; - _6 l" }, c3 R
net.trainParam.epochs=7000;
# u. u8 A% _8 X) ^0 \8 D2 Snet.trainParam.goal=1e-3;
7 |) L3 U- p) P3 f" u, R[net,tr]=train(net,P,T);
$ y) @, O) n+ K* `y=[8000 9000 10000;& {7 |( {; B! z, [; ~. l, `6 `. O
    9000 10000 11000;+ u) j7 S* c% r; M( n) u
    10000 11000 12000;];
" K  @3 O/ m- i' g& R) _for i=1:3
1 J" `- s7 f% \% ?3 K' a# y6 my(i,=(y(i,-min(p(i,))/(max(p(i,)-min(p(i,));
* p; ~, }2 H2 D/ c9 r% b1 yend
0 W1 E" a" e  a( ~( L& \0 Cx=sim(net,y);




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