数学建模社区-数学中国

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

作者: 子任    时间: 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];$ s% q5 m7 m3 e' s! m8 ?3 H
) @, q: p+ ]. o7 L
. _3 N# I/ T; d6 t0 P+ f
a=max(p'); %#ok<UDIM>5 @' [2 L) n0 k- c- X- c$ F. I
for i=1:14
: _- v2 k" M" R! N1 w' P/ p& r! N, ofor j=1:3
; V, Z; T% n9 u3 kptest(i,j)=p(i,j)/a(i); . k; L: K; f7 m8 C8 k
end
+ L7 M5 e# X( o( ^8 u( Hend
- i$ E5 U# w* t  z9 Q1 V7 U: Q0 `7 |' N
+ o& M% k( L4 e% b( {' r+ t; `3 U
p1=ones(1,14);
) o! S, a0 I# ?0 {8 ?p2=0.8.*ones(1,14);
; D+ V; s: C; Z3 A9 _p3=0.6.*ones(1,14);
5 \" Z1 O: F' T/ T, D0 R" M$ Q: Jp4=0.4.*ones(1,14);
  Y8 `* d8 c0 e" T1 Sp5=0.2.*ones(1,14);/ b: _0 C8 w3 Y0 B8 F" I8 H# y
p6=0.*ones(1,14);; w+ T7 y8 F% |: `1 ^4 K# g
ptrain=[pl;p2;p3;p4;p5;p6];; d! s4 o: b$ O$ E6 r8 C+ F( p) p- _
t=[100,80,60,40,20,0];$ P! I# ~# M' v* x

1 y. k& Y$ |- W" D  f( v, x. I& [
net=newff(minmax(ptrain'),[59,1],{tansig','purelin'},traingd');/ n- r+ D  y$ E7 [
net=init(net);( p* B& A( X6 ]( v) I$ [
net.trainparam.epochs=100000;
; x& G5 s- L+ j  s8 v# @) b- {net.trainparam.goal=1e-10;
* B  v4 I4 D9 r- v[net,tr]=train(net,ptrain',t);
2 Y) K4 h2 I7 N! B' d6 M+ |# C
, o" o( h( U- K! Y& C% g1 @* x; y3 [7 [$ x. l( Y. x# B
for i=1:3
6 z4 M) r$ X+ q! E5 e- c$ q  Aa=ptes(:,i);
0 R- C& ^6 d: A8 P& t: qscore(i)=sim(net,a); %#ok<SAGROW>
9 p7 }# m1 d- T- R, ?end
. z5 y4 h% t& [  a+ R
, t( @7 i( p+ P6 Y/ b
2 W+ ]6 b% H* X4 i3 |1 H# X$ |( Y% Z/ w9 I1 D8 ]. h7 d

作者: 数学中国—罂粟    时间: 2015-3-20 14:41
你是要问什么啊?
* {( {3 A1 G  A( W0 H0 w8 X
作者: 子任    时间: 2015-3-20 22:47
大神能帮我运行一下代码吗
* d8 y+ `, {) t3 K) R9 W  }我不懂这个
( x2 I# ]8 I- k, Z  B能留下联系方式吗
, `0 J# b+ `$ ^- P
作者: QYY1994    时间: 2015-3-21 14:04
这程序是你自己编的吧!你能说说你想做的是什么吗?! r! R$ z$ |) e- i7 y6 d3 E
我这里有一个小模板,你可以看看,希望对你有用:# i% }/ M- ?) X
clc,clear
4 m" |$ `4 K! M0 }- _& v1 qsqrs = [20.55 22.44 25.37 27.13 29.45 30.1 30.96 34.06 36.42 38.09 39.13 39.99 ..., y6 D( _- S6 G; e$ I4 M3 ?
    41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63];- E$ t$ I- b9 E
%人数 单位:万人; [& U- x/ v1 g9 d: f
sqjdcs = [0.6 0.75 0.85 0.90 1.05 1.35 1.45 1.60 1.70 1.85 2.15 2.20...
9 z% b2 I9 H- `) G5 P: I    2.25 2.35 2.50 2.60 2.70 2.85 2.95 3.10];* v+ m4 c) l5 G) C
%机动车数 单位:万辆% J* ^  i2 F& C; o$ O7 v( J3 q
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...4 A- \4 q# {9 D: }) W) W' o5 b/ F
    0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];
3 x5 u3 {1 G1 R! v" Z%公路面积 单位:万平方千米8 c! ?( T4 V0 Y: U
glkyl = [5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024....
& R# t/ H7 O$ T    19490 20433 22598 25107 33442 36836 40548 42927 43462];
; M; g: q% Q3 R0 K7 x3 l& a9 u%公路客运量 单位:万人
4 s( y$ q: R6 e0 h2 W+ k1 _* S3 @glhyl = [1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524..... Q3 k- s; U! a9 z: y& `9 X3 ^
    11115 13320 16762 18673 20724 20803 21804];
  W2 N7 y, L6 y4 @+ P%公路货运量 单位:万吨% Y, r. V5 B5 b; G
p = [sqrs;sqjdcs;sqglmj];   %输入数据矩阵; ^6 b4 A7 w( ?6 j* b  N
t = [glkyl;glhyl];          %目标矩阵0 n$ I2 C0 F. \2 v/ r
4 y2 G; C$ g- E/ h- z4 P" x
%%归一化处理
0 z% W, D% T+ o. ][pn,minp,maxp,tn,mint,maxt] = premnmx(p,t);  %对pt矩阵进行归一化处理
, l6 g( F" Z% |# q7 l) i4 |dx = [-1,1;-1 1;-1,1];                       %
4 i6 G/ D' {$ K, W2 C  S
- U8 ~, \0 a+ T+ ]) [9 J%BP网络训练
1 w# A# _$ ~- N4 D: ?9 Onet = newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
/ n# t4 s( \% ]( J! X! c6 y0 ]% U; f+ o$ q7 D. b
%%建立模型,并用梯度下降法训练
( L  E4 T, z: w' Fnet.trainParam.show = 1000;          %轮回显示一次
) g' q2 H: b% ]3 w" ?& Cnet.trainParam.Lr = 0.05;            %学习速率
$ y3 q' C: `# F$ [  h) ]8 {net.trainParam.epochs = 50000;       %最大训练轮回1 Y% O7 B' h5 ]/ Z" f
net.trainParam.goal = 0.65*10^(-3);  %均方误差
5 S2 f9 i" ~4 L/ I" xnet = train(net,pn,tn);              %开始训练7 f# j  ]; @4 e) b

1 `' R3 L, P; g/ E: M( J%%利用原始数据对BP网络仿真
& [6 w0 B, O6 ]" ban = sim(net,pn);                    %用训练好的模型进行仿真5 @  f3 H  F) _9 j% J1 Z: }
a = postmnmx(an,mint,maxt);          %把仿真到的数据还原到原始的数量级0 R* J7 L" M7 X, C3 Z  Z; o

( i; y* d' B& p%%对比测试- E" k  v5 u; _2 [9 k3 k& A- O
x = 1990:2009;0 n% x5 V1 e4 r8 B* E/ t
newk = a(1,:);
1 g, E! T) f! Onewh = a(2,:);
# e) i: V! r! R3 \- wfigure(2);# b' K  n# `( p2 I4 M& H2 E
subplot(2,1,1);3 w% A; {6 V4 ?1 X8 {7 T
plot(x,newk,'r-o',x,glkyl,'b--+');
) `* p( ^8 N$ h2 p/ ~5 Q; Y# Xlegend('预测输出客运量','实际客运量');
" F# Z3 ]4 U  B! w4 Qxlabel('年份');
! _) ]- s- ~+ w+ Cylabel('客运量/万人');3 r1 n$ d5 w9 ~/ g. ?0 T
title('运用数据箱客运量学习和测试对比图');4 H9 S5 c4 j1 g' j6 O1 m6 ?& h
subplot(2,1,2);
3 l4 u2 s# @, y: F6 _. Aplot(x,newh,'r-o',x,glhyl,'b--+');
3 b7 F$ _3 S2 ^/ Slegend('预测输出货运量','实际货运量');" ^5 u8 [0 j, e0 m  r( l
xlabel('年份');" Q" p9 Y6 A2 Z; E8 M# E
ylabel('货运量/万吨');" ?2 \$ h9 S7 I: A5 d
title('运用数据箱货运量学习和测试对比图');* U0 \9 r, q) C& \' O+ Z
%利用训练好的网络进行预测
  b3 g$ [' _% K3 qpnew = [73.39 75.55
8 g8 r3 Y' |: J! E8 S: S    3.9635 4.0975- B- L  K  y: `( {! I# v' W+ z$ f% `6 ?
    0.9880 1.0268];4 L8 k, \/ p0 a' v5 g; v
pnewn = tramnmx(pnew,minp,maxp);
* c3 P' W3 V( N- |% N%利用原始输入数据的归一化参数对新参数进行归一化% ?- E9 r5 g6 H0 w
anewn = sim(net,pnewn);
$ l* A+ u/ K2 u  {%利用归一化后的数据进行仿真2 U  z. n: p2 `/ W1 ?. c) z
anew = postmnmx(anewn,mint,maxt)
+ d6 g) e1 m3 x$ S%把仿真得到的数据还原原始的数量级/ V. B* H! V  _6 w$ a. E6 D

( M) ]4 {; A8 t: J$ a7 ]
5 I, T, S7 H9 J1 @4 d' Q' Y4 U欢迎交流!0 R: A, Y' x$ r) r
4 M; X% e3 g6 h' d/ v# L& _

作者: 子任    时间: 2015-3-22 12:09
恩恩,我想做的是一个评估!就是对几个对象做一个评估,得出一个分数
+ A% L% S0 ^4 u7 a非常感谢你
! L1 d7 G) U1 R5 U) x
" C& x1 U! p" Q: I& l9 n7 S




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