数学建模社区-数学中国

标题: 求 神经网络大神帮助 [打印本页]

作者: 子任    时间: 2015-3-20 12:08
标题: 求 神经网络大神帮助
p=[1 2 3;3 2 1;5 6 1;7 3 1;3 5 2;9 3 5;7 4 2;4 5 6;0 3 4;6 0 1;4 2 3;9 2 7;8 0 1;3 6 2];
1 P4 K! _6 X8 x6 C0 H2 V+ c6 G- M. ?6 |1 v

' w" S, p6 L  ]  ia=max(p'); %#ok<UDIM>0 \# h' l$ S' ^. c( h
for i=1:145 p, c: C$ F  {, F6 m( ~/ C! B
for j=1:3
5 N; r, p: S+ d5 qptest(i,j)=p(i,j)/a(i); ; v' _' I" Z$ G( p1 d
end
' A# A$ G) H8 i0 t% ?1 h  xend
2 e4 @9 A& |- h7 ~0 L5 U; C2 r
2 P: n! V" W( {  [. L+ l: E6 k. F
1 B7 V5 l: ]- ]p1=ones(1,14);; _% m; M! O, J9 Y, N9 g
p2=0.8.*ones(1,14);" O% b. O  @, O$ x2 A
p3=0.6.*ones(1,14);& M8 d6 |+ @# L8 X
p4=0.4.*ones(1,14);1 n. ~, c8 Y; y
p5=0.2.*ones(1,14);  ~! y  X/ I2 H5 M
p6=0.*ones(1,14);. |1 I7 |& L6 q# M  h/ H7 E, V
ptrain=[pl;p2;p3;p4;p5;p6];
) l$ b6 z" r8 H1 w. vt=[100,80,60,40,20,0];" T# |$ [! Z) l+ c" X

: r6 c8 }$ I* a* ^
) X' t+ |" {* G7 Knet=newff(minmax(ptrain'),[59,1],{tansig','purelin'},traingd');5 I0 E% x# M$ @1 `* c* x2 E. Z, O
net=init(net);
" I  _' N% _9 G9 znet.trainparam.epochs=100000;, Y: F: M# \: t* k: m$ m. Z+ r
net.trainparam.goal=1e-10;
* u" u+ a) r# \8 V2 C) y[net,tr]=train(net,ptrain',t);: S$ U' F9 V4 h+ _' X

( ^& q" @; f, A( X( C* ]+ m: m1 L- h6 [4 y( O; Y0 y6 `8 X
for i=1:3. D2 o0 ]' i' r  u4 ^
a=ptes(:,i);9 m- V, z, F; k0 n  y; j& X$ o, V
score(i)=sim(net,a); %#ok<SAGROW>
8 M+ r0 y+ R& V1 W1 Eend9 z7 h' f* _9 y; V

/ P" R$ O8 ^5 p
0 C7 f0 S2 I% I  S
; h+ u- t& ], I8 X% o
作者: 数学中国—罂粟    时间: 2015-3-20 14:41
你是要问什么啊?
' v, `* d" P( K0 \( N! X- o
作者: 子任    时间: 2015-3-20 22:47
大神能帮我运行一下代码吗
( D5 L# m2 H/ Y( W; q* ~( k我不懂这个
# C  @- y( k2 m& \能留下联系方式吗
9 G+ S  C* n6 K: |0 p
作者: QYY1994    时间: 2015-3-21 14:04
这程序是你自己编的吧!你能说说你想做的是什么吗?. K6 }! q) q; ?2 V* K
我这里有一个小模板,你可以看看,希望对你有用:+ e4 G9 v9 n6 C) w: ]
clc,clear
' b1 P2 l: H: a7 ?: m' }sqrs = [20.55 22.44 25.37 27.13 29.45 30.1 30.96 34.06 36.42 38.09 39.13 39.99 ...8 C6 `. A4 `7 S5 J* p7 \4 w9 ^& p
    41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63];+ r2 i* @6 n4 Z2 {9 L; v& Y' B; V
%人数 单位:万人
$ T  L1 q4 x# a# T  O/ ~1 f4 asqjdcs = [0.6 0.75 0.85 0.90 1.05 1.35 1.45 1.60 1.70 1.85 2.15 2.20...% J% M2 |2 d  h1 |0 h; E
    2.25 2.35 2.50 2.60 2.70 2.85 2.95 3.10];: q+ {! I( u+ ^. g) K7 g, m  G
%机动车数 单位:万辆
5 j  s& M1 ?% Lsqglmj = [0.09 0.11 0.11 0.14 0.20 0.23 0.23 0.32 0.32 0.34 0.36 0.36...
; M, _& B1 ]# A0 J# x! q+ B7 N    0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];+ v5 W7 p+ E+ D$ [. Y+ ^' a
%公路面积 单位:万平方千米
( x# I4 u; ^4 s/ kglkyl = [5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024....! r7 ]2 Q+ k+ g$ f" b' A. I) M
    19490 20433 22598 25107 33442 36836 40548 42927 43462];0 R4 O! R: o" q" p! Z
%公路客运量 单位:万人; R8 S7 `9 j( T& w
glhyl = [1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524....
. {1 W( @- A! ]. l    11115 13320 16762 18673 20724 20803 21804];3 q3 L' n3 x  B( a0 T
%公路货运量 单位:万吨
1 ]* e5 C3 H6 C- u$ Jp = [sqrs;sqjdcs;sqglmj];   %输入数据矩阵) K3 _: ^* i5 Y1 F
t = [glkyl;glhyl];          %目标矩阵
0 e* i; X9 p) B& P1 E1 N0 t! n2 y; r! M% m
%%归一化处理
8 C1 |" b4 B% |[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t);  %对pt矩阵进行归一化处理+ v# R% a$ t% I
dx = [-1,1;-1 1;-1,1];                       %/ N2 a# \( j: u; ?8 W" x. N2 x
* i, q' f1 {. J1 V7 d. l# u
%BP网络训练0 [6 i& s: h. \4 J. w: [
net = newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');  {1 j- e! |* i+ u+ y) t

( r1 q) k9 ~% q, }8 B  Z& J2 h%%建立模型,并用梯度下降法训练
2 s' j9 p: J6 j/ ]) ?6 y! Anet.trainParam.show = 1000;          %轮回显示一次5 b& ^5 v( E$ _5 O0 S
net.trainParam.Lr = 0.05;            %学习速率
9 Q+ g4 g3 V. H# Q  |$ L, M8 y; fnet.trainParam.epochs = 50000;       %最大训练轮回6 u; c0 @4 o7 \% S) w- T- W# w: \
net.trainParam.goal = 0.65*10^(-3);  %均方误差6 P7 o+ @) M: }# _
net = train(net,pn,tn);              %开始训练
3 y' K% l7 P! @, A
& z: V1 @7 M$ X4 N%%利用原始数据对BP网络仿真
6 G' u$ w4 g  e, \* [1 Uan = sim(net,pn);                    %用训练好的模型进行仿真
$ @% m2 j* S2 J- @a = postmnmx(an,mint,maxt);          %把仿真到的数据还原到原始的数量级
) K! Y- i& G/ A
) \0 ^; C2 D! p* T5 V* o%%对比测试
, v8 v$ x, T3 q# Tx = 1990:2009;6 B5 L' ?' r- u5 L) H- l& S
newk = a(1,:);
# n( A4 V; ^/ n# p8 e1 qnewh = a(2,:);
5 e$ A7 S7 `  C5 z0 _$ Qfigure(2);3 f) ]/ Y3 x6 G) {& f1 _
subplot(2,1,1);
2 g9 n& {' \1 [, `9 b$ Y/ _- {plot(x,newk,'r-o',x,glkyl,'b--+');
( m% ?: `3 m8 d4 \4 @' hlegend('预测输出客运量','实际客运量');
6 Z, @& S7 t" v0 Axlabel('年份');
* I& Z. D; L1 U1 y% c+ A  Kylabel('客运量/万人');8 T4 V& ~( c2 H1 ?
title('运用数据箱客运量学习和测试对比图');6 N* _6 c7 E& D3 K; x; f
subplot(2,1,2);- s" \' K7 c: k5 V
plot(x,newh,'r-o',x,glhyl,'b--+');
. M8 [7 P& `! ^; `5 k) i& ^legend('预测输出货运量','实际货运量');
9 b9 S5 p& W4 R+ Y' U$ x4 Jxlabel('年份');  z6 |) N6 k9 P$ Z1 \8 L: z
ylabel('货运量/万吨');
- y! d5 H2 q5 wtitle('运用数据箱货运量学习和测试对比图');. ?+ g- Q9 P& v* ~6 p- i
%利用训练好的网络进行预测
" v& U2 D+ P# Y  |: `+ K6 f' Bpnew = [73.39 75.55
* a2 A- I: ]: f/ W7 y7 S8 m7 g    3.9635 4.0975  x7 u# V0 @; \. ]5 _9 n
    0.9880 1.0268];) }; b8 x/ G+ _0 f8 i
pnewn = tramnmx(pnew,minp,maxp);
& {- q  y9 r" w' G%利用原始输入数据的归一化参数对新参数进行归一化
% Y, h$ h! }1 g" U# w9 u% n  z( eanewn = sim(net,pnewn);
2 N) Q2 R6 j: p! w( a%利用归一化后的数据进行仿真
0 ]6 u, o8 W# f* ?! C: Ganew = postmnmx(anewn,mint,maxt)7 t1 V; Q. F4 b/ D+ k2 H% d2 n
%把仿真得到的数据还原原始的数量级
" a% B7 A8 X! t2 X% D6 Y+ a1 @0 F8 E8 p# _
$ u. I- P8 |9 P; W$ W0 v% X+ ?
欢迎交流!# G0 u$ P( W5 K/ m5 }4 ^

7 O, t/ }6 k. u- e
作者: 子任    时间: 2015-3-22 12:09
恩恩,我想做的是一个评估!就是对几个对象做一个评估,得出一个分数0 N2 ?. U, V; |
非常感谢你
" p) x+ R3 C9 E. \( M, @2 r! Q- O8 @- v; X





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