数学建模社区-数学中国
标题:
求 神经网络大神帮助
[打印本页]
作者:
子任
时间:
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];
, V# n! }# S3 V# n" j4 P/ `
% l* F* x; x/ r; O1 v* f
4 _: F. Y. K- n
a=max(p'); %#ok<UDIM>
8 q8 V- H% V& B: }5 h+ G7 E6 F8 Z3 y$ m
for i=1:14
. {" q$ `* {( r) U- m
for j=1:3
2 Z* X0 L* ^( E" S& [7 h4 }" y
ptest(i,j)=p(i,j)/a(i);
# r( a" z% O8 W+ {
end
! }6 L8 u/ X1 F
end
. E. o, [) z; f) J8 o
* Q t2 j+ f7 @: V9 w5 r
6 @+ v5 e* t. m0 k! G
p1=ones(1,14);
' o; ~% i' S7 t, T V7 u4 X5 C) \
p2=0.8.*ones(1,14);
$ [) d' r+ U8 J, y
p3=0.6.*ones(1,14);
" o3 ?1 G1 P5 R+ ]+ i
p4=0.4.*ones(1,14);
. e9 ^" F5 `& L" v, ?/ @5 ^
p5=0.2.*ones(1,14);
% D+ v! i. E: C8 S4 q/ L
p6=0.*ones(1,14);
$ j; J9 I! Z! p9 M2 I( e
ptrain=[pl;p2;p3;p4;p5;p6];
8 O* B4 F( s, m$ L' U3 A! u0 i+ {( T
t=[100,80,60,40,20,0];
0 D$ i+ c7 F8 g0 s4 P; B# ]+ V- o) O
* @) f3 X R& j2 Z. E
1 h; D+ z% l, Q3 ~% e! q
net=newff(minmax(ptrain'),[59,1],{tansig','purelin'},traingd');
' M0 V3 K8 I' L! L& J; |* |
net=init(net);
1 R8 m& [* L, S
net.trainparam.epochs=100000;
, t: v P# p7 y7 P* u
net.trainparam.goal=1e-10;
2 F$ `5 t% K5 ?3 }! Q. Q
[net,tr]=train(net,ptrain',t);
% Y: q: {! y! Z! k
0 o1 u; L @% N2 a4 B5 m1 t& K! ]4 t
4 b4 S$ w' C5 q5 a- q
for i=1:3
6 `6 _( ?. F7 `7 T
a=ptes(:,i);
" Z$ }6 [% Y% {
score(i)=sim(net,a); %#ok<SAGROW>
/ q. V/ P4 ?8 _& k4 \' }
end
. {- N3 d( L+ C/ _! S/ L
^5 ]: r0 p" Z1 N. g- h: t
" Y# H2 H* K7 M1 Z- d: m+ b9 ?
% @6 ]9 {8 o$ y( i5 b
作者:
数学中国—罂粟
时间:
2015-3-20 14:41
你是要问什么啊?
) _; ?& m: x4 O. Q' [/ M
作者:
子任
时间:
2015-3-20 22:47
大神能帮我运行一下代码吗
2 k2 I! D& ~2 x% Y2 u
我不懂这个
' y7 I6 G" Z: w# m& y
能留下联系方式吗
7 j! D6 _# s9 L, _
作者:
QYY1994
时间:
2015-3-21 14:04
这程序是你自己编的吧!你能说说你想做的是什么吗?
# G. ~* C4 a9 g6 c4 I
我这里有一个小模板,你可以看看,希望对你有用:
9 p/ X B& H9 s- l, A& ~
clc,clear
6 m% I% k2 N1 }+ K& O$ `8 B
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 ...
2 _) [/ G: A2 R3 c8 Y% b1 ]
41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63];
: y. h9 u: D0 B. S2 v
%人数 单位:万人
6 R1 K+ z1 z# B9 W
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...
% J& z \; x! J
2.25 2.35 2.50 2.60 2.70 2.85 2.95 3.10];
$ D" M/ r* ^. }. {! Q( K
%机动车数 单位:万辆
/ y5 c. Z; E( X3 Y/ I, e, z& 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...
' t) k1 c/ c/ A
0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];
7 x; H' Q" l; ^2 d. G) a
%公路面积 单位:万平方千米
5 W5 c# w5 }. e" d7 `0 @1 i
glkyl = [5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024....
& |3 u& f- S, W* c! T
19490 20433 22598 25107 33442 36836 40548 42927 43462];
" E& ~7 e2 Z5 ]# b8 X' l1 U
%公路客运量 单位:万人
: f2 y! }. i' l
glhyl = [1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524....
3 Z# q( w3 ~& t/ C& y5 C5 w5 I
11115 13320 16762 18673 20724 20803 21804];
& {; V- |) J+ m3 X, T
%公路货运量 单位:万吨
. D2 d8 _) B4 h7 X4 c
p = [sqrs;sqjdcs;sqglmj]; %输入数据矩阵
+ A( l% s' s. l. I o0 \! e
t = [glkyl;glhyl]; %目标矩阵
' @7 t/ z/ }6 K: e: t9 {
7 ]# d) f* ?) l6 C* Q
%%归一化处理
# D$ X! w8 G5 a2 S9 C4 j* B
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t); %对pt矩阵进行归一化处理
0 |0 A! N+ I" h4 T X* D0 ]# ^
dx = [-1,1;-1 1;-1,1]; %
9 C$ B2 R4 ~) e# l5 H3 i( a2 P
9 g. N) \2 {8 w- Q; Q
%BP网络训练
' a( w5 |% M1 q' S% n" a
net = newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
) }* k$ {' {. G& \4 @* F
- P( A* f' N5 O% f# T6 D4 l
%%建立模型,并用梯度下降法训练
& t$ |: T4 N; J) a
net.trainParam.show = 1000; %轮回显示一次
3 N; W3 X* z$ |
net.trainParam.Lr = 0.05; %学习速率
, s' h% P% h8 W3 b( A
net.trainParam.epochs = 50000; %最大训练轮回
: {% Z6 S! m3 i% i9 Z
net.trainParam.goal = 0.65*10^(-3); %均方误差
. r( v; M- V. m9 l3 m b
net = train(net,pn,tn); %开始训练
$ K" @9 t: L% _$ A2 a
& Y4 r( m( a% R) B
%%利用原始数据对BP网络仿真
0 u: O3 v2 V, r0 n5 f
an = sim(net,pn); %用训练好的模型进行仿真
: Q; M4 C3 h3 X9 I* {
a = postmnmx(an,mint,maxt); %把仿真到的数据还原到原始的数量级
; v7 h, t9 Z3 B$ K. W
, b" t* E# S# p0 w; E
%%对比测试
7 D( a# B) R" z
x = 1990:2009;
/ p) B5 n. y1 b, C* x
newk = a(1,:);
+ Y( v6 Z) D2 [& H
newh = a(2,:);
8 ^6 G \! i* a/ u& n" Q4 u4 t! _7 G
figure(2);
! J2 }1 `) ~+ x( p. r" k
subplot(2,1,1);
( z1 Y: u5 Z7 r x: p* J! F' z! ]: p
plot(x,newk,'r-o',x,glkyl,'b--+');
4 Y0 o7 }. D% [2 p+ C* A( Y/ S+ J
legend('预测输出客运量','实际客运量');
5 _* k9 k/ S5 T4 R5 T: y" ?
xlabel('年份');
! Z }% F0 ?' |* u1 x
ylabel('客运量/万人');
$ ^! k2 g4 q7 S
title('运用数据箱客运量学习和测试对比图');
7 C' S9 @' N; x& c
subplot(2,1,2);
% S5 Y- O9 @8 v: W
plot(x,newh,'r-o',x,glhyl,'b--+');
( j# g( ?( ~5 u5 Q1 {# e7 O/ d( S
legend('预测输出货运量','实际货运量');
9 Y6 g! g3 u" d. f1 d/ y2 C
xlabel('年份');
* F0 t- ]( `3 O5 T5 W* {
ylabel('货运量/万吨');
- z2 |2 ^( ?. ^: K9 a
title('运用数据箱货运量学习和测试对比图');
8 @+ H( c' k( J8 B. M, \! q
%利用训练好的网络进行预测
) b" q$ T4 E$ d$ o
pnew = [73.39 75.55
/ m5 o9 I& A& X" S
3.9635 4.0975
$ L8 `2 O$ T& i
0.9880 1.0268];
/ ?: W$ A0 y5 w: [) l
pnewn = tramnmx(pnew,minp,maxp);
/ E, B0 Y2 S# }# ~3 W# ]6 p! _) V
%利用原始输入数据的归一化参数对新参数进行归一化
0 f8 J G u2 Q) I9 H
anewn = sim(net,pnewn);
0 ~- S. D& }4 e! X7 E& l
%利用归一化后的数据进行仿真
0 j: U) i# h. w
anew = postmnmx(anewn,mint,maxt)
2 |' c+ ^4 z4 n6 f3 S7 A# p" F$ J5 _
%把仿真得到的数据还原原始的数量级
/ x2 _$ l( ^% Y; n& V( _) c
& K! i" d1 y6 }4 r
3 g4 q m% K/ r$ V
欢迎交流!
* I+ g" U" G0 |2 X \1 Z
/ A0 L+ n& b7 d
作者:
子任
时间:
2015-3-22 12:09
恩恩,我想做的是一个评估!就是对几个对象做一个评估,得出一个分数
. \. Y6 x6 @& U( U N" v, V# T6 l% |2 a
非常感谢你
" a/ S1 b1 z' `; A7 H
f" f4 y5 n/ {, J) l( y
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5