数学建模社区-数学中国
标题:
跪求懂神经网络的大哥进来指点下小弟
[打印本页]
作者:
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( A
T=(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' M
inputbias=net.b{1};
9 Q% o) \/ B5 f
layerWeights=net.LW{2,1};% 当前网络层权值和阀值
" E, t! n. M1 u& I2 s* ~( r, x
layerbias=net.b{2};
; L& o8 E# F2 ^
net.trainParam.show=50; % 设置训练参数
9 X% g5 d% X# j! k
net.trainParam.lr=0.05;
% j0 f, y. d2 B3 y; c/ c5 r
net.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 C
y=[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. k
for i=1:3
8 ^& 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
end
8 Z3 L' x8 B" o+ c# n( ?+ W* g
x=sim(net,y);
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5