资源描述
Matlab归一化的方法关于神经网络归一化方法的整理由于采集的各数据单位不一致,因而须对数据进行-1,1归一化处理,归一化方法主要有如下几种,供大家参考:(byjames)1、线性函数转换,表达式如下:y=(x-MinValue)/(MaxValue-MinValue)说明:x、y分别为转换前、后的值,MaxValueMinValue分别为样本的最大值和最小值。pm=max(abs(p(i,:);p(i,:)=p(i,:)/pm;fori=1:27p(i,:)=(p(i,:)-min(p(i,:)/(max(p(i,:)-min(p(i,:);end可以归一到01之间0.1+(x-min)/(max-min)*(0.9-0.1)其中max和min分别表示样本最大值和最小值。这个可以归一到0.1-0.92、对数函数转换,表达式如下:y=log10(x)说明:以10为底的对数函数转换。3、反余切函数转换,表达式如下:y=atan(x)*2/PImatlab中的归一化处理有三种方法premnmx、postmnmx、tramnmx关于用premnmx语句进行归一化:premnmx语句的语法格式是:Pn,minp,maxp,Tn,mint,maxt=premnmx(P,T)其中P,T分别为原始输入和输出数据,minp和maxp分别为P中的最小值和最大值。mint和maxt分别为T的最小值和最大值。premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在-1,1区间内。我们在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx。下面介绍tramnmx函数:Pn=tramnmx(P,minp,maxp)其中P和Pn分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。prestd、poststd、trastd自己编程具体用那种方法就和你的具体问题有关了(byhappy)在最新版的matlab里面共有两个归一化函数:mapminmax(和mapstd(),其中第一个函数是归一化到01范围,后一个的原理我也不太懂,但归一后的数据较规整,比第一个好用各自的归一化格式如下:pn,ps=mapminmax(P)或=mapstd(P)%P是输入向量tn,ts=mapminmax(t)或=mapstd(t)%t是目标向量在训练完后,对测试样本归一化格式为:pnt=mapminmax(apply,pt,ps)或=mapstd(apply,pt,ps)仿真后反归一化格式则为:out=mapminmax(reverse,An,ts)或=mapstd(reverse,An,ts);其中An为sim函数的输出
展开阅读全文