数学建模社区-数学中国
标题:
求 神经网络大神帮助
[打印本页]
作者:
子任
时间:
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];
5 M% o" ~% j6 q0 _
- i+ R- i0 E0 j) K0 M
c7 ~' H% j- a! Q
a=max(p'); %#ok<UDIM>
. o; H1 W0 x& l
for i=1:14
: q! s9 x+ l& B. y' Y. J! p
for j=1:3
. w- p/ p6 L7 r
ptest(i,j)=p(i,j)/a(i);
& g9 e8 {, A3 B' t5 j- G' H* j+ J
end
j3 s- _2 l7 F% f' x7 l7 l* Z
end
4 X& }: ?$ J& ^: m9 B9 O. @. M; g
6 w7 U$ Z7 @$ V1 ^6 U
" b+ N+ i* b, S. o* B; G. [
p1=ones(1,14);
3 K! T. q! R9 J m- X6 f
p2=0.8.*ones(1,14);
$ E$ p, v# V( U) K3 Q' K
p3=0.6.*ones(1,14);
8 @; ?% C, W( w. X
p4=0.4.*ones(1,14);
* W5 o; j% P5 ?5 R
p5=0.2.*ones(1,14);
7 I. N4 {' p3 O# R: s9 k9 [5 f6 K
p6=0.*ones(1,14);
* ~5 L' }" m" [0 |* I! t- c
ptrain=[pl;p2;p3;p4;p5;p6];
4 o$ j& C: K; |4 [6 I% t, Z
t=[100,80,60,40,20,0];
0 a5 U3 ?7 f) L0 |! I
% v6 ~% N% d) T. f
! ?4 i/ }6 e, D: k, n
net=newff(minmax(ptrain'),[59,1],{tansig','purelin'},traingd');
1 k! _" X c& q& H
net=init(net);
4 [' P* B7 _) r' W# Y$ I; A4 w5 x
net.trainparam.epochs=100000;
N1 X: C4 N+ L' f# ]
net.trainparam.goal=1e-10;
! z% a: w: N h& w5 b
[net,tr]=train(net,ptrain',t);
9 R' W2 E/ A" N: t6 D
+ R: a& G/ q O9 T7 g, F
& i( I$ Q5 n Q) f; I
for i=1:3
. M! K. V8 u4 k4 v2 s( M5 f
a=ptes(:,i);
+ {3 t# H$ v' g9 V# \6 w% D% X6 w
score(i)=sim(net,a); %#ok<SAGROW>
* D) a5 J0 G+ s& E0 l
end
/ `1 m4 E# ^% [; D' M+ |; i V
4 E+ K) r6 L: k, B6 L S3 j
0 x1 z" N& O; s
0 B* l( S% i7 x" A
作者:
数学中国—罂粟
时间:
2015-3-20 14:41
你是要问什么啊?
8 a3 D$ C# \7 ?3 [; Y
作者:
子任
时间:
2015-3-20 22:47
大神能帮我运行一下代码吗
$ R/ M2 ^, P; ^
我不懂这个
, x/ Q& `$ X* s, Q2 \/ z* R
能留下联系方式吗
1 Z. y( E& H+ u, ]- ^
作者:
QYY1994
时间:
2015-3-21 14:04
这程序是你自己编的吧!你能说说你想做的是什么吗?
7 L. N% A7 i' L1 o; g1 M0 @
我这里有一个小模板,你可以看看,希望对你有用:
1 a' H0 Y/ N0 ~7 C# O& x% Q- W
clc,clear
( a2 D. r) a% o% z6 _8 T
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 ...
. `( M; |8 \" R$ L) I( j6 D; K
41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63];
" x$ Y+ E* Q( D' {0 R) ]
%人数 单位:万人
! k r8 n! m; ^' ]3 A! |* O
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...
0 W* G7 a! U, k1 I% K2 O
2.25 2.35 2.50 2.60 2.70 2.85 2.95 3.10];
' d, F$ ^3 J9 |2 e) r
%机动车数 单位:万辆
* c: d- H2 e: 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...
' P' A& L. ^) z5 k& }3 b
0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];
% D( O. z5 S+ G( M0 I
%公路面积 单位:万平方千米
/ Y+ M8 W. S, C5 b
glkyl = [5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024....
+ T/ N0 Q$ K3 G! A
19490 20433 22598 25107 33442 36836 40548 42927 43462];
! b3 x$ K' K4 Q R) @5 Q
%公路客运量 单位:万人
$ _+ v; G8 O0 L, m) R5 R' g, q
glhyl = [1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524....
& c. N* F/ B* @# W
11115 13320 16762 18673 20724 20803 21804];
2 x4 a% v% o9 `# v+ p( j
%公路货运量 单位:万吨
& A! D/ B0 j+ d3 @4 v( ]
p = [sqrs;sqjdcs;sqglmj]; %输入数据矩阵
( _/ O: Z9 h3 x7 Y% q0 D; P& k
t = [glkyl;glhyl]; %目标矩阵
( Y% x2 x; A4 g, q. v/ s8 C
4 S: e) k5 H/ p6 h* w) S
%%归一化处理
. E1 ]- r6 Z: }8 e" o$ s1 b
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t); %对pt矩阵进行归一化处理
0 S* a0 q3 O% W2 V! L# B: d
dx = [-1,1;-1 1;-1,1]; %
' _ X1 A& j# a) c0 ^/ H
( L$ ?4 W( t' A b( J7 g
%BP网络训练
7 f, g( k4 a1 c* J* Y z! Z
net = newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
- H! A3 ~+ }9 v. X
' I5 a* t* |9 v/ V& G% @1 r! }# u b
%%建立模型,并用梯度下降法训练
, J4 k5 _5 X4 I2 j: k
net.trainParam.show = 1000; %轮回显示一次
7 E1 P \" _5 C
net.trainParam.Lr = 0.05; %学习速率
A' K8 R1 k' J+ [& B. w
net.trainParam.epochs = 50000; %最大训练轮回
- I5 L0 g6 A3 W( H: H
net.trainParam.goal = 0.65*10^(-3); %均方误差
( ?: ]$ [ D7 C: U" k: A
net = train(net,pn,tn); %开始训练
4 n2 X$ f5 E$ j) W1 T0 q& S2 ?7 ^' L
6 e9 j; W4 R2 s: s) r
%%利用原始数据对BP网络仿真
* h- X+ a4 F3 G3 K0 T* f
an = sim(net,pn); %用训练好的模型进行仿真
w$ I* ]$ n" |8 W2 @
a = postmnmx(an,mint,maxt); %把仿真到的数据还原到原始的数量级
! b/ ^6 D1 A, ~, E" D) Z5 s
2 E- q+ E* T- |9 _
%%对比测试
& D, p. h. Q" E- Y; S. [
x = 1990:2009;
3 t# R+ A; h/ J" }+ R
newk = a(1,:);
% q" u6 U& n( J6 |' s6 x
newh = a(2,:);
6 f4 p6 I4 c4 w& P2 o: t
figure(2);
; x3 X6 {* N* V# x" n4 v" ]8 F
subplot(2,1,1);
4 t( t! n% _: d( Z" y$ x
plot(x,newk,'r-o',x,glkyl,'b--+');
% G# E4 X f$ F6 d. |- l
legend('预测输出客运量','实际客运量');
, X+ ~+ R7 T( ^% e! ]4 p C0 W1 Y$ g
xlabel('年份');
; C: Z6 L. o' j# u
ylabel('客运量/万人');
$ O- L5 |* J. }8 G
title('运用数据箱客运量学习和测试对比图');
! R: {& a) B! z8 J: G& A
subplot(2,1,2);
/ I* X) _ E. M" a/ _4 r$ @
plot(x,newh,'r-o',x,glhyl,'b--+');
3 K. z+ D8 x4 B- |
legend('预测输出货运量','实际货运量');
; V9 I+ N. J J" ~1 N; @ N
xlabel('年份');
* _; A% H: Z$ y1 L+ w8 _) i
ylabel('货运量/万吨');
7 {6 P; w1 X5 a$ g
title('运用数据箱货运量学习和测试对比图');
: v+ Y: v0 K7 ?- I
%利用训练好的网络进行预测
2 v3 V! s; j! N. h/ C" A8 k" c" K9 I3 O
pnew = [73.39 75.55
( m. v& r' D+ ?* M7 ~- w
3.9635 4.0975
T# O: E- V' G0 U& M! _8 e/ E9 P$ R
0.9880 1.0268];
2 M$ r. l5 h0 w @& ?4 O _
pnewn = tramnmx(pnew,minp,maxp);
, m: ~9 s; n0 z T( k# a+ W
%利用原始输入数据的归一化参数对新参数进行归一化
2 J4 {& G- R7 k, K, E! M( s
anewn = sim(net,pnewn);
+ U) H3 s, i9 L% @; N/ L) I
%利用归一化后的数据进行仿真
$ ?; r' f3 c+ x
anew = postmnmx(anewn,mint,maxt)
) |/ Q4 O( T8 n: D4 E
%把仿真得到的数据还原原始的数量级
}" n' ^7 K/ o$ q R
) Q. C2 L3 N/ [' i. x$ D u* J: [: g' O
$ _1 W$ M2 e9 z) N' {9 C
欢迎交流!
! J+ S1 d1 z% Z, j0 \" D7 b/ ~7 C
" r5 w5 k) u' Z1 c- r0 [3 [" S `
作者:
子任
时间:
2015-3-22 12:09
恩恩,我想做的是一个评估!就是对几个对象做一个评估,得出一个分数
& Y6 u: x8 Q: ^7 Z- o9 y5 s
非常感谢你
1 r9 Q3 ^7 L) q. j2 y
# x, }) L3 N! _& `8 {
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5