数学建模社区-数学中国
标题:
跪求懂神经网络的大哥进来指点下小弟
[打印本页]
作者:
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 {+ n
end
& 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! a
net.trainParam.mc=0.9;
* N( z' O# A& t
net.trainParam.epochs=7000;
6 ~' l! ?, T) d$ x) E, N2 @7 x
net.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 v
for i=1:3
3 ^- 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' M
end
# p. f) S. r; t; W! [4 H9 H
x=sim(net,y);
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5