QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3195|回复: 1
打印 上一主题 下一主题

[代码资源] 一matlab程序中一点点的小问题

[复制链接]
字体大小: 正常 放大
yychanaz        

1

主题

0

听众

27

积分

升级  23.16%

该用户从未签到

新人进步奖

跳转到指定楼层
1#
发表于 2009-9-10 00:20 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
神经网络预测
2 v$ v* E% h& y0 [5 l% 数据为1986年到2000年的交通量 ,网络为3输入,1输出% e, y( l6 p5 V! R
% 15组数据,其中9组为正常训练数据,3组为变量数据,3组为测试数据' ]3 F9 T! `8 g; O, F
%by akjuan
2 s0 F5 _4 g2 p, R%all rights preserved by www.4math.cn
1 U+ a: {: u) u: T. Q; \All_error=[];%所有误差存储7 O0 r6 ?& n7 t4 A; s
year=1986:2000;%数据是从1986到2000年的
4 C* B* G6 M* Y* \. lp=[493 372 445;372 445 176;445 176 235;176 235 378;235 378 429;...
  V9 F9 N+ T, A5 P$ J$ q3 K# ^   378 429 561;429 561 651;561 651 467;651 467 527;467 527 668;...0 A1 q- S6 n  r+ o+ o+ {7 M
   527 668 841; 668 841 526;841 526 480;526 480 567;480 567 685]';%输入数据,共15组,每组3个输入
1 x. |6 e4 @, n: U/ @t=[176 235 378 429 561 651 467 527 668 841 526 480 567 685 507];%输出数据,共15组,每组1个输出
" f- x4 u% p4 W[normInput,ps] = mapminmax(p);6 M1 }% g0 }5 p- v
[normTarget,ts] = mapminmax(t);
. L$ n! n. m1 a! W, ItestPercent = 0.20;  % Adjust as desired
' Y) \9 z1 E' t& rvalidatePercent = 0.20;  % Adust as desired5 v! \. Q, k5 H1 j4 n& |" a
[trainSamples,validateSamples,testSamples] = dividevec(normInput,normTarget,validatePercent,testPercent);# V6 k8 _3 ]) Y5 \
for j=1:2004 c! v3 b9 O( z8 h. Q9 L
NodeNum1 = 20; % 隐层第一层节点数: y/ |6 f) o. f+ i
NodeNum2=40;   % 隐层第二层节点数
9 V4 J4 w; M9 [4 KTypeNum = 1;   % 输出维数
( W; U4 b' v1 ~) k  u2 dTF1 = 'tansig';TF2 = 'tansig'; TF3 = 'tansig';6 Q- N  Z- [: f/ w* |% G3 O, v
net=newff(minmax(normInput),[NodeNum1,NodeNum2,TypeNum],{TF1 TF2 TF3},'traingdx');%网络创建net.trainParam.epochs=10000;%训练次数设置0 \/ B* [$ m0 v9 E, r" L8 g; v  t
net.trainParam.goal=1e-6;%训练目标设置
0 {- u% I, w/ s) G, i2 S) |. APL.lr=0.01;net.trainfcn='traingdm';1 d( F$ L! |; J' H
[net,tr] = train(net,trainSamples.P,trainSamples.T,[],[],validateSamples,testSamples);
  K; Q7 `) A4 O[normTrainOutput,Pf,Af,E,trainPerf] = sim(net,trainSamples.P,[],[],trainSamples.T);%正常输入的9组p数据,BP得到的结果t2 Q/ k! N; S- z2 K
[normValidateOutput,Pf,Af,E,validatePerf] = sim(net,validateSamples.P,[],[],validateSamples.T);%用作变量3的数据p,BP得到的结果t* b2 {2 ~% S, c% f: J/ V
[normTestOutput,Pf,Af,E,testPerf] = sim(net,testSamples.P,[],[],testSamples.T);%用作测试的3组数据p,BP得到的结果t$ Q' k+ D: ?. F+ r
trainOutput = mapminmax('reverse',normTrainOutput,ts);%正常输入的9组p数据,BP得到的归一化后的结果t$ ?0 v( C4 L2 Z0 z6 o
trainInsect = mapminmax('reverse',trainSamples.T,ts);%正常输入的9组数据t5 Z4 E& Y  o: x
validateOutput = mapminmax('reverse',normValidateOutput,ts);%用作变量3的数据p,BP得到的归一化的结果t
4 i' f: ?3 n) s& \1 AvalidateInsect = mapminmax('reverse',validateSamples.T,ts);%用作变量3的数据t
) K' \( }9 ^' s. p; GtestOutput = mapminmax('reverse',normTestOutput,ts);%用作变量3组数据p,BP得到的归一化的结果t) G: m' [" D1 M) V
testInsect = mapminmax('reverse',testSamples.T,ts);%用作变量3组数据t! z3 Y6 i# w% T5 z2 L7 h
%绝对误差计算
: k8 \: [7 ^* W' t0 TabsTrainError = trainOutput-trainInsect;
1 Z9 @  Z7 N( K  P4 Y3 i: FabsTestError = testOutput-testInsect;) q" b, i9 \, M9 i- o0 n5 @
error_sum=sqrt(absTestError(1).^2+absTestError(2).^2+absTestError(3).^2);
/ k% |* s/ O! M5 n( f6 g  S2 pAll_error=[All_error error_sum];
. p& r1 L' A0 A, C( heps=90;%其为3组测试数据的标准差,或者每个数据偏差在一定范围内而判别
+ Y) u8 p6 T$ Lif ((abs(absTestError(1))<=30 )&(abs(absTestError(2))<=30)&(abs(absTestError(3))<=30)|(error_sum<=eps))
8 e* B) L* o( i" H2 l% ssave mynetdata net2 D& A5 p+ Y2 u! D- H
     break3 |# ^6 P3 e* L4 q4 d* N4 s
end
% r9 N, I  j  nj) C9 m# s% Z/ N
end
* f% p$ }. q9 b$ A% T* |! M问题是:, C/ M5 t3 g  c
if ((abs(absTestError(1))<=30 )&(abs(absTestError(2))<=30)&(abs(absTestError(3))<=30)|(error_sum<=eps))
& d! Q& `- k7 B# h) f* U中的30是怎么算出来的啊
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏1 支持支持1 反对反对0 微信微信

10

主题

4

听众

108

积分

升级  4%

该用户从未签到

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-5-25 20:46 , Processed in 0.436781 second(s), 62 queries .

回顶部