数学建模社区-数学中国
标题:
求 神经网络大神帮助
[打印本页]
作者:
子任
时间:
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+ c
for i=1:14
8 H }& k3 D# T; X4 Z
for j=1:3
& r8 d' o/ ^6 ^9 R
ptest(i,j)=p(i,j)/a(i);
' ]: x4 Q0 T9 R& k
end
, k! X; K0 j4 l0 g
end
. W# Q r3 }" w& N. C" _
( ?7 r1 ^) J2 f' P$ M! @/ t
3 ~. ]9 n) w" O- T
p1=ones(1,14);
. A( @9 Y/ |, }$ Q
p2=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; h
p4=0.4.*ones(1,14);
7 b B! i$ E2 q- @. `; w
p5=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 t
net=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: q
for i=1:3
; u- ?) ]$ c; Q. M/ t5 O
a=ptes(:,i);
+ `+ o2 |2 L0 I' y
score(i)=sim(net,a); %#ok<SAGROW>
/ R8 o; [; ~* B# S
end
! 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- ^) L
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...
$ 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 R
glkyl = [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 i
glhyl = [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 P
p = [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, q
dx = [-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 y
7 ^- ]8 J: x+ r& S& X
%%建立模型,并用梯度下降法训练
2 ?( O0 n7 i6 d4 r
net.trainParam.show = 1000; %轮回显示一次
# T9 ]* Q$ S: R: E( c4 h
net.trainParam.Lr = 0.05; %学习速率
' F! u6 Z8 s. S9 ? B5 x4 ^
net.trainParam.epochs = 50000; %最大训练轮回
) V+ \( n# w% g) _2 @+ V
net.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! T
newk = 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 t
subplot(2,1,1);
, j2 D8 j+ f/ r* k* a2 h+ ~8 d
plot(x,newk,'r-o',x,glkyl,'b--+');
) |+ \2 S! k2 s% [/ s
legend('预测输出客运量','实际客运量');
4 |# J9 }$ H8 Z8 @6 w
xlabel('年份');
: t, f' ?# }& M1 H; }, w
ylabel('客运量/万人');
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! D
legend('预测输出货运量','实际货运量');
, f. T8 X2 s: h. f7 t
xlabel('年份');
0 s" g8 m9 y+ N6 b1 t0 q
ylabel('货运量/万吨');
: H' d# T4 f& E
title('运用数据箱货运量学习和测试对比图');
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 x
pnewn = tramnmx(pnew,minp,maxp);
: M& W& h) E. E) l& k
%利用原始输入数据的归一化参数对新参数进行归一化
, J# B1 W% @" q" u9 J
anewn = sim(net,pnewn);
c: f! b. x" l( }# n
%利用归一化后的数据进行仿真
$ x0 w2 a( w5 _4 E2 |* |" Z
anew = 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