数学建模社区-数学中国

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

作者: 子任    时间: 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];
& D  j4 P1 x. e7 _9 s/ T& U/ L
2 r* [% H. z& P0 g& v: N, q9 _( i$ v, R! v9 a" L
a=max(p'); %#ok<UDIM>
' G2 a9 J& V* d' N* e+ cfor i=1:14
8 H  }& k3 D# T; X4 Zfor j=1:3
& r8 d' o/ ^6 ^9 Rptest(i,j)=p(i,j)/a(i); ' ]: x4 Q0 T9 R& k
end
, k! X; K0 j4 l0 gend
. W# Q  r3 }" w& N. C" _
( ?7 r1 ^) J2 f' P$ M! @/ t3 ~. ]9 n) w" O- T
p1=ones(1,14);
. A( @9 Y/ |, }$ Qp2=0.8.*ones(1,14);8 `# q) Y2 W8 Z- n5 k! ~4 D0 Q" |) M
p3=0.6.*ones(1,14);
: j! x+ e! U; hp4=0.4.*ones(1,14);
7 b  B! i$ E2 q- @. `; wp5=0.2.*ones(1,14);7 [  e( F: h6 r) r1 z) g
p6=0.*ones(1,14);
, {$ n2 t& n7 E% F" [% z) ~ptrain=[pl;p2;p3;p4;p5;p6];; ^% J+ P6 X- K6 i  r
t=[100,80,60,40,20,0];
$ g: B3 T" E3 I% `! i! [
' y2 m& m1 e$ F' D* a5 O6 B
* w% {. s) I0 tnet=newff(minmax(ptrain'),[59,1],{tansig','purelin'},traingd');* F( P9 W! f5 s) C
net=init(net);7 J2 Z1 N% E9 v2 {" q1 t7 }
net.trainparam.epochs=100000;2 M, a9 m: {) Z, l  v& n
net.trainparam.goal=1e-10;
# w1 j# z8 P1 @9 g. t; X/ |+ J[net,tr]=train(net,ptrain',t);
, X! p. m2 H& s- w. ]" q0 t4 @' D7 P

) Y+ K. i, o: qfor i=1:3; u- ?) ]$ c; Q. M/ t5 O
a=ptes(:,i);
+ `+ o2 |2 L0 I' yscore(i)=sim(net,a); %#ok<SAGROW>
/ R8 o; [; ~* B# Send
! W/ g) [* ]" m: @  D9 B$ C$ j. F  }3 v9 X% X# Y7 ^9 V% z* A
& k- a0 m; d8 D1 s5 B
, g$ c: b& |+ c0 D( x( L

作者: 数学中国—罂粟    时间: 2015-3-20 14:41
你是要问什么啊?
4 z1 T! A& A2 i
作者: 子任    时间: 2015-3-20 22:47
大神能帮我运行一下代码吗
' F+ @  v' t- i. Q: M  F我不懂这个& \" I/ s# W, a$ ^( d
能留下联系方式吗2 r. H8 X) j8 h6 |/ `

作者: QYY1994    时间: 2015-3-21 14:04
这程序是你自己编的吧!你能说说你想做的是什么吗?
' I, K$ Q( U$ }/ O8 ?我这里有一个小模板,你可以看看,希望对你有用:" B8 {8 q2 j3 N4 y$ `: A" j' w4 o
clc,clear
4 `! A% n/ _' ^2 h& |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 ...
/ g/ B3 W$ N) C& s4 v    41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63];
: T; @8 j$ I; o/ m%人数 单位:万人
( [9 L* \9 v- ^) Lsqjdcs = [0.6 0.75 0.85 0.90 1.05 1.35 1.45 1.60 1.70 1.85 2.15 2.20...
$ g9 D& H$ {2 e; L! o/ @' L    2.25 2.35 2.50 2.60 2.70 2.85 2.95 3.10];# I0 `5 B# ?8 r  y+ S8 x( R$ y
%机动车数 单位:万辆* s: `' c& v7 }3 r9 D, E( f
sqglmj = [0.09 0.11 0.11 0.14 0.20 0.23 0.23 0.32 0.32 0.34 0.36 0.36...
! F( w0 |) M+ p+ b6 X# n2 A* @    0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];2 z$ q& f& a4 l
%公路面积 单位:万平方千米
1 z) a. H( Z, v& V" n: j9 Rglkyl = [5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024...., R: A& V! b2 B3 \+ {+ @" Y
    19490 20433 22598 25107 33442 36836 40548 42927 43462];  I4 C2 C/ s2 Q. _# W9 Q- k, u
%公路客运量 单位:万人
& O! V& i8 L; O1 iglhyl = [1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524..... u' R" a( x( q3 x0 ~) ]8 m3 Y
    11115 13320 16762 18673 20724 20803 21804];3 `$ R" h8 G$ w4 O$ J  b
%公路货运量 单位:万吨
2 r" D$ O( H: g) U4 o, }5 Pp = [sqrs;sqjdcs;sqglmj];   %输入数据矩阵$ R; n7 m) Q+ T6 u
t = [glkyl;glhyl];          %目标矩阵
5 _% w& E3 m$ I# W0 J
; {9 z) G* |. E( j* s%%归一化处理  S; j2 T- @5 {- W
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t);  %对pt矩阵进行归一化处理
  @) ?* o+ ?8 m( \% h, qdx = [-1,1;-1 1;-1,1];                       %
2 z  L5 u! w- M+ C
* d8 Z5 z2 p1 I$ Y%BP网络训练7 g( O  |7 ]: a$ i: O( z$ g
net = newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
- e2 F: W# T) N* h5 @; P6 y7 ^- ]8 J: x+ r& S& X
%%建立模型,并用梯度下降法训练2 ?( O0 n7 i6 d4 r
net.trainParam.show = 1000;          %轮回显示一次
# T9 ]* Q$ S: R: E( c4 hnet.trainParam.Lr = 0.05;            %学习速率
' F! u6 Z8 s. S9 ?  B5 x4 ^net.trainParam.epochs = 50000;       %最大训练轮回
) V+ \( n# w% g) _2 @+ Vnet.trainParam.goal = 0.65*10^(-3);  %均方误差$ _  h& @6 S2 \0 z) B
net = train(net,pn,tn);              %开始训练
( ]" z9 v( Z; f) K+ c, G" |, Y: L: `
%%利用原始数据对BP网络仿真5 S2 D- \  }" y; Z9 P  c# z& C
an = sim(net,pn);                    %用训练好的模型进行仿真* a, ]0 x* c8 n! _7 _. k  l
a = postmnmx(an,mint,maxt);          %把仿真到的数据还原到原始的数量级
( P) c' q' o  o# ]( G9 a* w+ T& g2 C2 l& |3 @& n4 m
%%对比测试
5 c) i6 ^3 s9 k. {x = 1990:2009;
: v0 `1 `# n# T# h; S: z! Tnewk = a(1,:);; c$ n! W8 @+ }2 \9 h' ]6 `+ T5 q! q0 R
newh = a(2,:);7 V2 A% j" q5 Y# B. U1 D
figure(2);
1 }( [! [) V/ I' C1 k5 tsubplot(2,1,1);
, j2 D8 j+ f/ r* k* a2 h+ ~8 dplot(x,newk,'r-o',x,glkyl,'b--+');) |+ \2 S! k2 s% [/ s
legend('预测输出客运量','实际客运量');
4 |# J9 }$ H8 Z8 @6 wxlabel('年份');
: t, f' ?# }& M1 H; }, wylabel('客运量/万人');4 r6 s  }7 f( |8 x7 V  u' z
title('运用数据箱客运量学习和测试对比图');' h4 x$ ]6 T( m! q
subplot(2,1,2);7 i) c  a9 L6 L9 M. D$ O8 J
plot(x,newh,'r-o',x,glhyl,'b--+');
% h2 V5 C- U5 E/ a7 \. k# W! Dlegend('预测输出货运量','实际货运量');
, f. T8 X2 s: h. f7 txlabel('年份');0 s" g8 m9 y+ N6 b1 t0 q
ylabel('货运量/万吨');
: H' d# T4 f& Etitle('运用数据箱货运量学习和测试对比图');
8 x+ h' _9 o8 v+ I1 B4 d%利用训练好的网络进行预测6 \# a% R3 g1 b& k4 I
pnew = [73.39 75.55
+ l2 p$ P2 n% b3 }# P! e2 L    3.9635 4.0975
. d7 ~& C: c: a2 N    0.9880 1.0268];
7 Q2 J0 V! x2 [1 xpnewn = tramnmx(pnew,minp,maxp);: M& W& h) E. E) l& k
%利用原始输入数据的归一化参数对新参数进行归一化
, J# B1 W% @" q" u9 Janewn = sim(net,pnewn);
  c: f! b. x" l( }# n%利用归一化后的数据进行仿真
$ x0 w2 a( w5 _4 E2 |* |" Zanew = postmnmx(anewn,mint,maxt): P& p* q! |3 Q- m% O, y- {
%把仿真得到的数据还原原始的数量级
8 Z1 S4 f+ X8 ^: [, `* z; o9 {/ ^. k4 Z& E' w
0 c& g0 H& ?' R5 X
欢迎交流!
. m  P/ S- u8 c0 j; ^; ]
/ I7 ?7 x) M0 p9 |
作者: 子任    时间: 2015-3-22 12:09
恩恩,我想做的是一个评估!就是对几个对象做一个评估,得出一个分数$ T- F* q3 Z  `! y( G/ s! b
非常感谢你" b5 L" F, g) n5 q

' P) c1 M$ K" m4 y: x5 G




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