数学建模社区-数学中国
标题:
求 神经网络大神帮助
[打印本页]
作者:
子任
时间:
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];
$ s% q5 m7 m3 e' s! m8 ?3 H
) @, q: p+ ]. o7 L
. _3 N# I/ T; d6 t0 P+ f
a=max(p'); %#ok<UDIM>
5 @' [2 L) n0 k- c- X- c$ F. I
for i=1:14
: _- v2 k" M" R! N1 w' P/ p& r! N, o
for j=1:3
; V, Z; T% n9 u3 k
ptest(i,j)=p(i,j)/a(i);
. k; L: K; f7 m8 C8 k
end
+ L7 M5 e# X( o( ^8 u( H
end
- i$ E5 U# w* t z9 Q1 V7 U: Q0 `7 |' N
+ o& M% k( L4 e% b
( {' r+ t; `3 U
p1=ones(1,14);
) o! S, a0 I# ?0 {8 ?
p2=0.8.*ones(1,14);
; D+ V; s: C; Z3 A9 _
p3=0.6.*ones(1,14);
5 \" Z1 O: F' T/ T, D0 R" M$ Q: J
p4=0.4.*ones(1,14);
Y8 `* d8 c0 e" T1 S
p5=0.2.*ones(1,14);
/ b: _0 C8 w3 Y0 B8 F" I8 H# y
p6=0.*ones(1,14);
; w+ T7 y8 F% |: `1 ^4 K# g
ptrain=[pl;p2;p3;p4;p5;p6];
; d! s4 o: b$ O$ E6 r8 C+ F( p) p- _
t=[100,80,60,40,20,0];
$ P! I# ~# M' v* x
1 y. k& Y$ |- W
" D f( v, x. I& [
net=newff(minmax(ptrain'),[59,1],{tansig','purelin'},traingd');
/ n- r+ D y$ E7 [
net=init(net);
( p* B& A( X6 ]( v) I$ [
net.trainparam.epochs=100000;
; x& G5 s- L+ j s8 v# @) b- {
net.trainparam.goal=1e-10;
* B v4 I4 D9 r- v
[net,tr]=train(net,ptrain',t);
2 Y) K4 h2 I7 N! B' d6 M+ |# C
, o" o( h( U- K! Y& C% g1 @* x
; y3 [7 [$ x. l( Y. x# B
for i=1:3
6 z4 M) r$ X+ q! E5 e- c$ q A
a=ptes(:,i);
0 R- C& ^6 d: A8 P& t: q
score(i)=sim(net,a); %#ok<SAGROW>
9 p7 }# m1 d- T- R, ?
end
. z5 y4 h% t& [ a+ R
, t( @7 i( p+ P6 Y/ b
2 W+ ]6 b% H* X4 i3 |
1 H# X$ |( Y% Z/ w9 I1 D8 ]. h7 d
作者:
数学中国—罂粟
时间:
2015-3-20 14:41
你是要问什么啊?
* {( {3 A1 G A( W0 H0 w8 X
作者:
子任
时间:
2015-3-20 22:47
大神能帮我运行一下代码吗
* d8 y+ `, {) t3 K) R9 W }
我不懂这个
( x2 I# ]8 I- k, Z B
能留下联系方式吗
, `0 J# b+ `$ ^- P
作者:
QYY1994
时间:
2015-3-21 14:04
这程序是你自己编的吧!你能说说你想做的是什么吗?
! r! R$ z$ |) e- i7 y6 d3 E
我这里有一个小模板,你可以看看,希望对你有用:
# i% }/ M- ?) X
clc,clear
4 m" |$ `4 K! M0 }- _& v1 q
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 ...
, y6 D( _- S6 G; e$ I4 M3 ?
41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63];
- E$ t$ I- b9 E
%人数 单位:万人
; [& U- x/ v1 g9 d: 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...
9 z% b2 I9 H- `) G5 P: I
2.25 2.35 2.50 2.60 2.70 2.85 2.95 3.10];
* v+ m4 c) l5 G) C
%机动车数 单位:万辆
% J* ^ i2 F& C; o$ O7 v( J3 q
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...
4 A- \4 q# {9 D: }) W) W' o5 b/ F
0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];
3 x5 u3 {1 G1 R! v" Z
%公路面积 单位:万平方千米
8 c! ?( T4 V0 Y: U
glkyl = [5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024....
& R# t/ H7 O$ T
19490 20433 22598 25107 33442 36836 40548 42927 43462];
; M; g: q% Q3 R0 K7 x3 l& a9 u
%公路客运量 单位:万人
4 s( y$ q: R6 e0 h2 W+ k1 _* S3 @
glhyl = [1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524....
. Q3 k- s; U! a9 z: y& `9 X3 ^
11115 13320 16762 18673 20724 20803 21804];
W2 N7 y, L6 y4 @+ P
%公路货运量 单位:万吨
% Y, r. V5 B5 b; G
p = [sqrs;sqjdcs;sqglmj]; %输入数据矩阵
; ^6 b4 A7 w( ?6 j* b N
t = [glkyl;glhyl]; %目标矩阵
0 n$ I2 C0 F. \2 v/ r
4 y2 G; C$ g- E/ h- z4 P" x
%%归一化处理
0 z% W, D% T+ o. ]
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t); %对pt矩阵进行归一化处理
, l6 g( F" Z% |# q7 l) i4 |
dx = [-1,1;-1 1;-1,1]; %
4 i6 G/ D' {$ K, W2 C S
- U8 ~, \0 a+ T+ ]) [9 J
%BP网络训练
1 w# A# _$ ~- N4 D: ?9 O
net = newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
/ n# t4 s( \% ]( J! X! c6 y0 ]
% U; f+ o$ q7 D. b
%%建立模型,并用梯度下降法训练
( L E4 T, z: w' F
net.trainParam.show = 1000; %轮回显示一次
) g' q2 H: b% ]3 w" ?& C
net.trainParam.Lr = 0.05; %学习速率
$ y3 q' C: `# F$ [ h) ]8 {
net.trainParam.epochs = 50000; %最大训练轮回
1 Y% O7 B' h5 ]/ Z" f
net.trainParam.goal = 0.65*10^(-3); %均方误差
5 S2 f9 i" ~4 L/ I" x
net = train(net,pn,tn); %开始训练
7 f# j ]; @4 e) b
1 `' R3 L, P; g/ E: M( J
%%利用原始数据对BP网络仿真
& [6 w0 B, O6 ]" b
an = sim(net,pn); %用训练好的模型进行仿真
5 @ f3 H F) _9 j% J1 Z: }
a = postmnmx(an,mint,maxt); %把仿真到的数据还原到原始的数量级
0 R* J7 L" M7 X, C3 Z Z; o
( i; y* d' B& p
%%对比测试
- E" k v5 u; _2 [9 k3 k& A- O
x = 1990:2009;
0 n% x5 V1 e4 r8 B* E/ t
newk = a(1,:);
1 g, E! T) f! O
newh = a(2,:);
# e) i: V! r! R3 \- w
figure(2);
# b' K n# `( p2 I4 M& H2 E
subplot(2,1,1);
3 w% A; {6 V4 ?1 X8 {7 T
plot(x,newk,'r-o',x,glkyl,'b--+');
) `* p( ^8 N$ h2 p/ ~5 Q; Y# X
legend('预测输出客运量','实际客运量');
" F# Z3 ]4 U B! w4 Q
xlabel('年份');
! _) ]- s- ~+ w+ C
ylabel('客运量/万人');
3 r1 n$ d5 w9 ~/ g. ?0 T
title('运用数据箱客运量学习和测试对比图');
4 H9 S5 c4 j1 g' j6 O1 m6 ?& h
subplot(2,1,2);
3 l4 u2 s# @, y: F6 _. A
plot(x,newh,'r-o',x,glhyl,'b--+');
3 b7 F$ _3 S2 ^/ S
legend('预测输出货运量','实际货运量');
" ^5 u8 [0 j, e0 m r( l
xlabel('年份');
" Q" p9 Y6 A2 Z; E8 M# E
ylabel('货运量/万吨');
" ?2 \$ h9 S7 I: A5 d
title('运用数据箱货运量学习和测试对比图');
* U0 \9 r, q) C& \' O+ Z
%利用训练好的网络进行预测
b3 g$ [' _% K3 q
pnew = [73.39 75.55
8 g8 r3 Y' |: J! E8 S: S
3.9635 4.0975
- B- L K y: `( {! I# v' W+ z$ f% `6 ?
0.9880 1.0268];
4 L8 k, \/ p0 a' v5 g; v
pnewn = tramnmx(pnew,minp,maxp);
* c3 P' W3 V( N- |% N
%利用原始输入数据的归一化参数对新参数进行归一化
% ?- E9 r5 g6 H0 w
anewn = sim(net,pnewn);
$ l* A+ u/ K2 u {
%利用归一化后的数据进行仿真
2 U z. n: p2 `/ W1 ?. c) z
anew = postmnmx(anewn,mint,maxt)
+ d6 g) e1 m3 x$ S
%把仿真得到的数据还原原始的数量级
/ V. B* H! V _6 w$ a. E6 D
( M) ]4 {; A8 t: J$ a7 ]
5 I, T, S7 H9 J1 @4 d' Q' Y4 U
欢迎交流!
0 R: A, Y' x$ r) r
4 M; X% e3 g6 h' d/ v# L& _
作者:
子任
时间:
2015-3-22 12:09
恩恩,我想做的是一个评估!就是对几个对象做一个评估,得出一个分数
+ A% L% S0 ^4 u7 a
非常感谢你
! L1 d7 G) U1 R5 U) x
" C& x1 U! p" Q: I& l9 n7 S
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5