数学建模社区-数学中国
标题:
求 神经网络大神帮助
[打印本页]
作者:
子任
时间:
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];
8 b8 M0 F: z# o5 e3 j6 Z
E5 @0 d5 f+ K% j! g0 f9 w3 o7 g
4 Y! r Q2 M2 x8 P
a=max(p'); %#ok<UDIM>
+ k [: c3 b; c
for i=1:14
3 ]# }, X$ V, T l* p" ?( K# M
for j=1:3
6 _ U$ L5 I4 R; V& _3 r
ptest(i,j)=p(i,j)/a(i);
( D! G! z' B: J) o0 r5 Q% \
end
( L! a6 b, o5 S0 E! E# z
end
7 [, }1 d- j* y( V! d5 V
# f+ {1 e; G6 ?& `2 D8 [
( |! m1 k/ o7 z- p! _. z
p1=ones(1,14);
1 h0 l7 P# v' }. G
p2=0.8.*ones(1,14);
$ r$ L8 x: h$ b3 X2 m. J$ E
p3=0.6.*ones(1,14);
$ S# M! m# K K0 F) ^4 x. W" a
p4=0.4.*ones(1,14);
4 V3 v/ p6 ~% z3 B# {- i! O) ~( ]
p5=0.2.*ones(1,14);
9 H6 K; |- r+ q; Z
p6=0.*ones(1,14);
! ~/ t! |7 {2 S8 a2 {( @
ptrain=[pl;p2;p3;p4;p5;p6];
" x) R" R; v8 n, k: N" J$ Y! r
t=[100,80,60,40,20,0];
' ^! Q" I+ A: w' Q
8 ?3 o7 ^/ F) L* @/ U9 _) ?$ r/ `
# G" j: { w& D/ H! z4 _1 P
net=newff(minmax(ptrain'),[59,1],{tansig','purelin'},traingd');
( G" k% D, [- e! J4 G
net=init(net);
! l# O% j4 l1 e; M4 q
net.trainparam.epochs=100000;
( s! s& G# d2 }- {1 M" c7 L% J
net.trainparam.goal=1e-10;
( E- @$ d3 @2 i8 c( F& Y( c
[net,tr]=train(net,ptrain',t);
& g3 w- Q1 R9 b6 ?
( e$ f8 L5 ~/ g7 \, c4 @0 C6 h
3 w6 u9 W; ^# K5 L$ @
for i=1:3
5 K1 c9 i& E7 M
a=ptes(:,i);
5 q0 ]. u1 f' w- h& q
score(i)=sim(net,a); %#ok<SAGROW>
$ O5 F; @9 Z8 H% \& K
end
3 O9 }- d% ~( h
6 D$ [( z, @+ h% A" X, o
- K: h9 a8 M$ } P0 E
Y, P) Z* h; E' g5 z
作者:
数学中国—罂粟
时间:
2015-3-20 14:41
你是要问什么啊?
% \* b2 E( h- n1 L0 K
作者:
子任
时间:
2015-3-20 22:47
大神能帮我运行一下代码吗
" s0 P Q# G, R2 b6 q
我不懂这个
9 E0 Y! q) ^* u) ~# H+ ]
能留下联系方式吗
; R4 R) G! V( o5 w
作者:
QYY1994
时间:
2015-3-21 14:04
这程序是你自己编的吧!你能说说你想做的是什么吗?
, H6 B8 N1 p" p3 W$ v" e$ b- h
我这里有一个小模板,你可以看看,希望对你有用:
2 j( z q' R5 M6 S: k% l% S
clc,clear
7 S4 d0 @4 \$ f4 Z& J0 J {, l7 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 ...
* }9 O8 k; q3 f5 [) f- i
41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63];
2 [* U9 g- g- q
%人数 单位:万人
) }* N# r+ D% ]0 f& V" ]6 Y7 x. R
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...
! Y8 J G: T4 S j& X1 x; Z. D' `
2.25 2.35 2.50 2.60 2.70 2.85 2.95 3.10];
' X# \* h3 T# O$ y' a8 c
%机动车数 单位:万辆
/ b x6 _* W Z% \% E
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...
0 a# a4 g+ s/ a. T2 z
0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79];
! e3 e3 ]+ A0 b1 U8 L3 i5 v
%公路面积 单位:万平方千米
# J1 G8 O( v! c3 {
glkyl = [5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024....
" n# h. Q& K: e
19490 20433 22598 25107 33442 36836 40548 42927 43462];
, Z( m1 L! {; z" n5 p" b2 x
%公路客运量 单位:万人
3 {. M+ q1 Q( r# H
glhyl = [1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524....
- E1 ]( _, j( m' [8 O/ u& B* r4 k' S6 E
11115 13320 16762 18673 20724 20803 21804];
" {9 r9 r+ x S0 j3 i
%公路货运量 单位:万吨
' e- P+ C! X: B3 Q
p = [sqrs;sqjdcs;sqglmj]; %输入数据矩阵
' W2 I& w% {8 d! \+ H" W3 {
t = [glkyl;glhyl]; %目标矩阵
# l# f4 c R* q% w/ o4 K7 j9 i
5 H# Z! h6 A- e( G% \" k6 I- K% i
%%归一化处理
/ }- m4 j: D+ ]# s/ }9 s- I
[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t); %对pt矩阵进行归一化处理
5 v$ @5 t* N& H6 K6 H" m4 ^) c, h2 p& s
dx = [-1,1;-1 1;-1,1]; %
! q5 y. m! \2 I# z# R
5 B$ ?) r' Z: \2 ]. p/ t6 c: t5 @
%BP网络训练
% J. x) x9 _. ~
net = newff(dx,[3,7,2],{'tansig','tansig','purelin'},'traingdx');
0 C6 M$ {6 [0 }' L& k
0 V2 r( z8 M" s: f
%%建立模型,并用梯度下降法训练
2 L8 H' \; {3 X L" j. q5 X
net.trainParam.show = 1000; %轮回显示一次
' @" c- h3 d, ?& C
net.trainParam.Lr = 0.05; %学习速率
2 {& L( T2 P# c$ ]
net.trainParam.epochs = 50000; %最大训练轮回
* l- `) ]: G6 @& V7 ^, z
net.trainParam.goal = 0.65*10^(-3); %均方误差
1 U: p9 j" Q$ D1 k/ q% k; h
net = train(net,pn,tn); %开始训练
; W0 s7 p; d* m
6 S/ P+ `* ^. }# R$ E# W' {" l
%%利用原始数据对BP网络仿真
j/ I6 Z4 R; K" Z0 T6 u
an = sim(net,pn); %用训练好的模型进行仿真
5 ]& C/ Y" p( t4 {
a = postmnmx(an,mint,maxt); %把仿真到的数据还原到原始的数量级
7 ?6 V& z; H" j5 o. f
2 D4 A+ A& T7 S( B, z0 _
%%对比测试
" C+ T3 S0 `* E
x = 1990:2009;
/ B! V# f2 }( Q5 @! H
newk = a(1,:);
, w! V5 s# w4 b7 _/ K" [# T
newh = a(2,:);
! |) }, `# U$ Z6 f$ i7 F
figure(2);
# G2 G, V' _% H4 c/ b. B2 Q
subplot(2,1,1);
8 o$ x# I9 c `% b7 R
plot(x,newk,'r-o',x,glkyl,'b--+');
. U% H7 s4 f0 g) E9 N# [' U
legend('预测输出客运量','实际客运量');
1 {! |6 V$ _* o! p8 p
xlabel('年份');
8 u3 B3 Q! \5 t" ^# D6 \
ylabel('客运量/万人');
5 M3 M: {" R8 T( J- c8 D1 Y0 N* ]/ z
title('运用数据箱客运量学习和测试对比图');
' n, |; c; ~8 [7 N
subplot(2,1,2);
# b: P) N9 `/ l6 |+ U
plot(x,newh,'r-o',x,glhyl,'b--+');
- S+ i4 G. M' F7 I- @! D
legend('预测输出货运量','实际货运量');
+ P( B# ~1 L7 a. p# A& C h2 k$ r
xlabel('年份');
% z; Y& d9 T- A* E
ylabel('货运量/万吨');
# |, r5 ?' k" e& j9 f3 G0 Z
title('运用数据箱货运量学习和测试对比图');
; y7 H6 \4 E/ ^" n! k1 ]
%利用训练好的网络进行预测
& @* G8 @6 ^/ W+ ]. D; Q. C; C
pnew = [73.39 75.55
4 N$ Y- L6 [. F9 F0 K
3.9635 4.0975
7 v b5 O4 Y: d3 }
0.9880 1.0268];
6 _: c0 w; Q9 @2 T+ g% N( q
pnewn = tramnmx(pnew,minp,maxp);
7 w& s! h* b, @" M
%利用原始输入数据的归一化参数对新参数进行归一化
, e# t) l$ `9 {8 L
anewn = sim(net,pnewn);
, X6 A+ m. s% j* o. i5 r/ v, S5 e
%利用归一化后的数据进行仿真
: e% Z9 ?6 b! V' ]8 D
anew = postmnmx(anewn,mint,maxt)
8 T9 ^7 j0 A" j A9 L0 m- u
%把仿真得到的数据还原原始的数量级
" Y; V7 s* Z7 U5 e9 ~
$ x2 |# m, c! b- d" i# `% A/ S
" u: E4 q) f2 {( h/ H4 f
欢迎交流!
& j! H. b$ d; d& O! h7 b. O
! L* u+ D' `* k& G) d
作者:
子任
时间:
2015-3-22 12:09
恩恩,我想做的是一个评估!就是对几个对象做一个评估,得出一个分数
: ^5 S2 h! }- V
非常感谢你
$ t. m& F4 X, g7 ]( a+ b
. e* q1 l e1 o2 J9 ~' \
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5