数学建模社区-数学中国
标题:
求 神经网络大神帮助
[打印本页]
作者:
子任
时间:
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];
$ Q4 r6 D% ^; @8 M9 [+ f! G" T# n
& Y+ m& h8 X* [, p0 z
! j! R4 Y; M w" z' G# j, Z; z+ y7 m
a=max(p'); %#ok<UDIM>
8 t5 c& J" \8 S
for i=1:14
, n6 w1 D$ Z$ ^# {4 z
for j=1:3
1 |' a% h3 q) V% `7 x4 q
ptest(i,j)=p(i,j)/a(i);
* a7 C* m: k; G) n' W( E: i( ~7 m
end
5 A9 V% ^) w4 `! q( `3 p: G
end
8 `1 f! y) _. d& f; M2 Z) Z
% }9 a4 I8 h o& L1 H
/ m7 _; F M$ I4 e5 u" w
p1=ones(1,14);
# k" v! k k& G
p2=0.8.*ones(1,14);
4 A# L) j, t" C6 ~ d- B- U
p3=0.6.*ones(1,14);
% ~9 b( o; J) _8 K! c3 v7 R% K( c
p4=0.4.*ones(1,14);
, Y' Q# E; S& I% n5 b+ e2 Q$ B
p5=0.2.*ones(1,14);
, f5 l/ B8 X. y8 k9 W. [
p6=0.*ones(1,14);
% Q9 U3 i$ C8 ~5 I; f7 p+ e& h
ptrain=[pl;p2;p3;p4;p5;p6];
8 f% h; F) g0 J! y
t=[100,80,60,40,20,0];
* Y6 d$ |1 h7 y; }/ g% r* V* L: Q* m! n
" n& x; v$ X" B9 i
, z& ]6 k, J, }* e( L! x& t
net=newff(minmax(ptrain'),[59,1],{tansig','purelin'},traingd');
* y% ?$ L; V1 N# ^- i6 I6 z6 @
net=init(net);
$ `: N8 [- Z$ z4 G! t7 n
net.trainparam.epochs=100000;
3 V, K/ `5 d" T) C$ q3 X& T
net.trainparam.goal=1e-10;
9 K/ q x* T1 \4 p5 N0 v! R' G
[net,tr]=train(net,ptrain',t);
7 N* z9 D1 i* q& Z9 s2 k& @6 I0 Y
2 g: F0 e3 I; C5 I5 U
2 T8 X7 T% X$ P) w7 x7 D
for i=1:3
5 \8 C1 {4 i( x' T W7 k# {+ S
a=ptes(:,i);
; D) W$ n* C1 M" e
score(i)=sim(net,a); %#ok<SAGROW>
) s. W& n. l/ l0 S5 e5 Q/ A
end
) Q" |7 g+ V) V5 j3 B5 F
, `9 u) B$ e1 m/ a7 P! J) f8 z$ d
4 ` h. o3 V+ d) }
8 o& w/ `1 w6 k6 x9 K5 Z# V
作者:
数学中国—罂粟
时间:
2015-3-20 14:41
你是要问什么啊?
$ x! ~3 U- _; ?& P% C+ M" U/ A
作者:
子任
时间:
2015-3-20 22:47
大神能帮我运行一下代码吗
6 E; F6 Z0 U I8 E5 j l6 s5 P
我不懂这个
# V1 e' j4 j$ L$ B, S
能留下联系方式吗
8 M$ t+ k i* \' }( f
作者:
QYY1994
时间:
2015-3-21 14:04
这程序是你自己编的吧!你能说说你想做的是什么吗?
/ i9 _1 F3 T* o( _! ]* ~5 v
我这里有一个小模板,你可以看看,希望对你有用:
1 O3 T& Q& [% s- n
clc,clear
3 Y* ~* G2 ]" t* p7 P# K/ X( |
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 ...
, Y8 K% X) D+ q: U2 |0 g! y- G
41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63];
/ I1 _* ~. z" U2 R
%人数 单位:万人
8 X+ M$ D' ? D# c) A' 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...
; E5 U4 \+ d k3 [
2.25 2.35 2.50 2.60 2.70 2.85 2.95 3.10];
7 ~, h K; z3 o5 {9 S z
%机动车数 单位:万辆
* o! V+ N( ~& U1 [! w j; X
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...
. U9 Y I2 G1 u# x& J
0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];
6 f& n/ L9 J: z- U
%公路面积 单位:万平方千米
0 O% _$ V" n, ?( j
glkyl = [5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024....
7 L6 z/ ^$ |. w0 Z3 a) S; d
19490 20433 22598 25107 33442 36836 40548 42927 43462];
$ A, R/ y9 Q4 d5 _! g
%公路客运量 单位:万人
$ ]: T: o5 K/ I: x9 K: M* H3 S
glhyl = [1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524....
7 z1 U/ Z* j3 K s" Q P4 j6 a6 b
11115 13320 16762 18673 20724 20803 21804];
) U- w$ c5 V" _5 G; }. X( ]
%公路货运量 单位:万吨
/ B7 F+ e' U$ c$ f
p = [sqrs;sqjdcs;sqglmj]; %输入数据矩阵
2 H7 {; c: @* d5 t3 I
t = [glkyl;glhyl]; %目标矩阵
, F( `4 p5 S) T$ f Z# `, s
( B6 }2 ^# W+ ^
%%归一化处理
+ g% ?. t& W4 ?. n3 c* N
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t); %对pt矩阵进行归一化处理
% |& K3 i3 m# A' c, Z+ {& a
dx = [-1,1;-1 1;-1,1]; %
3 E* h8 s6 [7 I4 U6 j4 U0 {
# m# O7 k# x; S. A
%BP网络训练
* h% s _/ M! K% J/ x2 z
net = newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
# p5 B0 ^" V" \* X& S& Q( e
7 F2 b% U( V u6 E) {+ N
%%建立模型,并用梯度下降法训练
) b4 h4 T9 ]$ `2 R# @5 d7 |
net.trainParam.show = 1000; %轮回显示一次
1 ?9 J" z7 @/ G+ b. Y! V0 v2 f& F
net.trainParam.Lr = 0.05; %学习速率
2 h$ C. O3 v' O. ~. `$ b- T
net.trainParam.epochs = 50000; %最大训练轮回
% P! y7 _: R U8 M9 | {
net.trainParam.goal = 0.65*10^(-3); %均方误差
$ Y& q) E X" {9 Z n; w1 q l
net = train(net,pn,tn); %开始训练
# b! h& B5 Q( B
! y9 D+ h6 y p0 M
%%利用原始数据对BP网络仿真
1 y' u5 K4 W& y5 g# L
an = sim(net,pn); %用训练好的模型进行仿真
& {+ U# M4 U9 t
a = postmnmx(an,mint,maxt); %把仿真到的数据还原到原始的数量级
1 m# ?/ \* B4 y4 p5 z* l% L! y) D+ N
6 ^2 \& W5 @% ^3 S; A( ~
%%对比测试
8 }3 ^4 B+ J& O6 l
x = 1990:2009;
3 J! @+ Z2 `; @" F
newk = a(1,:);
2 O' Y: O3 u# [6 b3 l
newh = a(2,:);
& ^. a% Q% S' y, Q/ O' a! F* ]
figure(2);
4 p* \4 N) g) h
subplot(2,1,1);
/ l% \& _, i, E9 U4 w3 a. X6 t/ \
plot(x,newk,'r-o',x,glkyl,'b--+');
3 Q* \% o# q4 S0 q
legend('预测输出客运量','实际客运量');
2 j# J4 y6 n! |$ X, F" N/ k
xlabel('年份');
; A- v# U; S! t0 ~& S
ylabel('客运量/万人');
% K1 D7 p) k4 r, S, s& F# _
title('运用数据箱客运量学习和测试对比图');
% ]+ ^( L& _+ w' g
subplot(2,1,2);
& w0 N/ t+ P' D( O% r6 F6 K& E6 @$ o
plot(x,newh,'r-o',x,glhyl,'b--+');
0 e7 j$ J5 s2 m0 B$ ?1 a/ R% Y
legend('预测输出货运量','实际货运量');
* d! F& f5 M" A3 ^
xlabel('年份');
! a- O. u% h' v
ylabel('货运量/万吨');
8 l5 b, H6 E- m; a7 O" p
title('运用数据箱货运量学习和测试对比图');
* B1 n8 w `% `% e& i9 o; u0 s
%利用训练好的网络进行预测
& ~, c8 J! | e2 a6 N
pnew = [73.39 75.55
! k" n0 |8 V p* s9 ]
3.9635 4.0975
( s& [# D# [) m7 M% q B
0.9880 1.0268];
' `" H, `4 K$ i8 P
pnewn = tramnmx(pnew,minp,maxp);
0 _. C; U5 @* c4 z( N
%利用原始输入数据的归一化参数对新参数进行归一化
% _" u' k! r i9 m( s
anewn = sim(net,pnewn);
) Y6 ^! N/ g" D5 M6 g
%利用归一化后的数据进行仿真
- \0 p- z% x' _# e
anew = postmnmx(anewn,mint,maxt)
! v6 _5 [* X. {+ Q$ C4 s$ k
%把仿真得到的数据还原原始的数量级
5 _% M1 u2 _% G3 N5 i4 P% h8 D
) n, ~7 C0 a: P5 V+ S h
0 o1 K/ [* W3 d' l
欢迎交流!
) R1 ~4 J ~, u; |- m9 e7 L
, c0 R& ]; ^" ?
作者:
子任
时间:
2015-3-22 12:09
恩恩,我想做的是一个评估!就是对几个对象做一个评估,得出一个分数
) [" K) L k+ d+ D4 G r7 P
非常感谢你
7 `- [0 E" W; T9 ?6 t
/ h c7 }. C& v* U6 L( w1 n
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5