数学建模社区-数学中国
标题:
求 神经网络大神帮助
[打印本页]
作者:
子任
时间:
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# e
a=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 }% h
end
: 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 V
p5=0.2.*ones(1,14);
: t- R6 Z) P+ M6 \& |: t) Q! w
p6=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: q
net=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 c
net.trainparam.epochs=100000;
, W$ g- s- |: d( z9 P/ n+ k
net.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- w
3 L, Y5 q' g: k7 A- z% }; g
for i=1:3
, s- n; n0 k$ X
a=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 q
clc,clear
3 q8 x4 f" L- Y8 N
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 ...
% 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 c
3 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 z
an = 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! a
x = 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$ C
plot(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: i
plot(x,newh,'r-o',x,glhyl,'b--+');
, u8 r' a( T! O9 V1 ]' A- Z& _' h
legend('预测输出货运量','实际货运量');
% \( 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 }# ]. W
pnew = [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