数学建模社区-数学中国

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

作者: 子任    时间: 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];$ |' e0 U" \# y7 F3 D

' G) ]; M% |8 w. o; E% F; R
. g1 w' y. k# ea=max(p'); %#ok<UDIM>& o' p# j5 q* T" a7 B4 i
for i=1:14
" K( V8 R) P" [for j=1:3$ [5 e) t3 E2 _# C# A- F1 N
ptest(i,j)=p(i,j)/a(i);
/ E4 E5 ~0 }% hend: A- m' Y! _' ]  h1 l% u+ p' a8 ?
end
  T/ ~) P; ~- e1 Y. S" C) O
5 z, b* ]$ R. d9 ~; W! u2 ~3 O1 D) W6 j3 c* n3 q7 t% f  B
p1=ones(1,14);4 _8 O3 t  w$ D
p2=0.8.*ones(1,14);4 _3 q; [' K$ X, h$ }
p3=0.6.*ones(1,14);
" x$ q+ j% J6 g: j* q' y+ J2 [p4=0.4.*ones(1,14);
. W! |8 W% M5 Vp5=0.2.*ones(1,14);
: t- R6 Z) P+ M6 \& |: t) Q! wp6=0.*ones(1,14);5 g; c3 b3 {/ [$ L: H
ptrain=[pl;p2;p3;p4;p5;p6];1 A8 \2 o' q3 K( K
t=[100,80,60,40,20,0];
& m4 I/ |6 c3 ^+ u0 c! D) W7 y# h$ A# ~% m3 L- a7 l/ u4 ?

# |# Z4 w7 \0 U: qnet=newff(minmax(ptrain'),[59,1],{tansig','purelin'},traingd');1 x5 F, r1 k$ R5 R
net=init(net);
0 n5 s  l8 R5 P% M. S8 cnet.trainparam.epochs=100000;
, W$ g- s- |: d( z9 P/ n+ knet.trainparam.goal=1e-10;
5 ~( B* o% r0 g[net,tr]=train(net,ptrain',t);* y- e4 M" D% }

# z" P* |. G/ L& x8 {( u* E- w3 L, Y5 q' g: k7 A- z% }; g
for i=1:3
, s- n; n0 k$ Xa=ptes(:,i);, E9 e( }, }4 [3 Z1 }
score(i)=sim(net,a); %#ok<SAGROW>& o8 o, u, |+ ^. k$ n! ^" K$ ?+ _( g
end/ F& e* ^" q; c

8 f6 {$ q: k- L, S* R4 T0 [
4 {0 S! U# V# |% B5 _
1 M% ^% S+ B0 ^$ k% i
作者: 数学中国—罂粟    时间: 2015-3-20 14:41
你是要问什么啊?
1 T( ]5 F5 T- O0 b2 Y! W3 ]0 h
作者: 子任    时间: 2015-3-20 22:47
大神能帮我运行一下代码吗; z# n7 I& V, f: j4 h- {
我不懂这个
5 i) c" }- b$ B1 U能留下联系方式吗
5 I( \! S" V$ I0 |7 I
作者: QYY1994    时间: 2015-3-21 14:04
这程序是你自己编的吧!你能说说你想做的是什么吗?3 P8 w- y" d* t& H/ J
我这里有一个小模板,你可以看看,希望对你有用:
- z# ^. J  V8 ]0 l1 qclc,clear
3 q8 x4 f" L- Y8 Nsqrs = [20.55 22.44 25.37 27.13 29.45 30.1 30.96 34.06 36.42 38.09 39.13 39.99 ...
% Q3 ]% a9 y; L    41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63];6 d. C" @2 o  j
%人数 单位:万人( d7 J  N+ h: t/ Q
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...
/ r/ K- u1 g6 J6 C    2.25 2.35 2.50 2.60 2.70 2.85 2.95 3.10];
( R$ {' c$ I: a6 k+ v( Q& Y%机动车数 单位:万辆# g" M: R9 x2 I) H6 R  K
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...
3 X( S) E0 M3 r5 F& Y3 z- l/ _    0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];
$ y$ P* ]- x  W) x%公路面积 单位:万平方千米
6 K5 W' k* N( K# t  j% _glkyl = [5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024....: p. y0 F8 M" d
    19490 20433 22598 25107 33442 36836 40548 42927 43462];
; X, t7 c9 l  l2 C. Q6 A* c! k$ \4 g%公路客运量 单位:万人% V/ o( j+ n2 ?  W8 H
glhyl = [1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524....
# j% E3 r; J( E! }! r* P    11115 13320 16762 18673 20724 20803 21804];
# [5 o& d# x- h/ M2 `%公路货运量 单位:万吨7 a6 L7 g) S1 o$ D
p = [sqrs;sqjdcs;sqglmj];   %输入数据矩阵& a5 B: r1 p' Y
t = [glkyl;glhyl];          %目标矩阵
1 e0 [2 X4 H( w- W7 i9 c3 M5 _) r: e6 Y% p
%%归一化处理
" c- d- S/ j$ T$ C  {  [7 @3 h0 @[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t);  %对pt矩阵进行归一化处理& v& H; U7 j! h8 R
dx = [-1,1;-1 1;-1,1];                       %
: k9 j! b" C5 f6 x
* U# ~& N+ Z  \' [9 t* \! E%BP网络训练8 A; ~0 g: X+ M$ k2 K2 ]8 X) y+ u4 a
net = newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');8 w* x; p7 J# d5 A6 p

- l! p( c* x; u& C%%建立模型,并用梯度下降法训练9 T& q! Y3 V& O
net.trainParam.show = 1000;          %轮回显示一次) M: o$ p' {8 E. j2 k
net.trainParam.Lr = 0.05;            %学习速率$ \- [$ N6 J& F+ @7 v6 l9 Z
net.trainParam.epochs = 50000;       %最大训练轮回: L1 D3 ~1 d+ h0 v! i* F2 Y! u
net.trainParam.goal = 0.65*10^(-3);  %均方误差; P) O$ `8 L! ]8 M& e  E
net = train(net,pn,tn);              %开始训练  D4 ^: ^; E* l) T4 F6 D' k1 I

+ T1 v5 P/ }- o8 i% ]8 u# [  [1 n%%利用原始数据对BP网络仿真
5 T0 P7 d" j& t) l0 ?9 O  zan = sim(net,pn);                    %用训练好的模型进行仿真/ Q3 p$ A! f' z7 D4 |6 X
a = postmnmx(an,mint,maxt);          %把仿真到的数据还原到原始的数量级
  F) d/ F- ?/ m1 A0 @2 G3 f
5 {, X! u! H9 b' i2 \8 e%%对比测试
2 K( p9 ^  t5 g" {3 Y7 f) A1 j! ax = 1990:2009;% N* e/ a7 {% Y5 z2 @! P) E6 z
newk = a(1,:);
/ S+ e6 f% G4 N9 O( Q0 }8 u7 q' |newh = a(2,:);& j- M  {' W0 W( a2 S5 {
figure(2);- q6 ?! R0 M$ H1 ^0 J/ r: e7 d; |: }
subplot(2,1,1);
3 d/ \; T2 T$ Z$ Cplot(x,newk,'r-o',x,glkyl,'b--+');
, P4 O. j& w8 r7 C' ]legend('预测输出客运量','实际客运量');: J# T6 O) V& \0 d" p
xlabel('年份');6 M" q3 \4 n, u# o8 G0 f1 t
ylabel('客运量/万人');* [1 p3 w& `  z4 c3 f
title('运用数据箱客运量学习和测试对比图');. F: v8 [. p, J7 U2 Z
subplot(2,1,2);
: \0 B( K  u; w. K: iplot(x,newh,'r-o',x,glhyl,'b--+');
, u8 r' a( T! O9 V1 ]' A- Z& _' hlegend('预测输出货运量','实际货运量');% \( p, h1 _. o5 S, X: l8 G3 v) ?
xlabel('年份');. A( `5 Q4 F6 }: Q# b( Y8 q1 j4 z( Y
ylabel('货运量/万吨');/ B# h& d3 Z' m; E5 b. ?
title('运用数据箱货运量学习和测试对比图');
. L! n1 L, ^0 w9 b' i6 ?  }' k4 z%利用训练好的网络进行预测
9 g0 T$ L6 }# ]. Wpnew = [73.39 75.55
1 C# I' i" |- m! \    3.9635 4.0975
- O: K$ ]" l1 t2 C& S    0.9880 1.0268];: R; u- e- s& n4 K
pnewn = tramnmx(pnew,minp,maxp);. G1 A' x& H, @5 Y$ }1 I4 N
%利用原始输入数据的归一化参数对新参数进行归一化1 C7 N' X( ]. r) G2 L! x' M
anewn = sim(net,pnewn);( I0 o- j. W' ]- B
%利用归一化后的数据进行仿真0 J8 H: j2 j% s8 }) S
anew = postmnmx(anewn,mint,maxt)! p0 f8 }# a4 y& W$ S. t  \
%把仿真得到的数据还原原始的数量级# s* X6 I2 [, x6 B

9 @5 ?5 B  T& I: Q9 M# |
$ A: T: U) D) Y: o) S0 R( i欢迎交流!
( B' Y. }3 |+ h' \6 G6 L6 H5 W
1 k6 c' F8 B& x2 \2 Z
作者: 子任    时间: 2015-3-22 12:09
恩恩,我想做的是一个评估!就是对几个对象做一个评估,得出一个分数
/ t; o6 P$ _" n5 h9 s0 P5 y非常感谢你$ H3 D, P3 [# V4 e) n: w0 W

( ^* ^5 c% j& \; L" c  b




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