matlab 神经网络 数据预处理归一化
https://zhidao.baidu.com/question/22624172.html
premnmx、tramnmx、postmnmx、mapminmax
premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内。
premnmx语句的语法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T),其中P,T分别为原始输入和输出数据。
在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx函数:
tramnmx语句的语法格式是:[PN]=tramnmx(P,minp,maxp)
其中P和PN分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。
网络输出结果需要进行反归一化还原成原始的数据,常用的函数是:postmnmx。
postmnmx语句的语法格式是:[PN] = postmnmx(P,minp,maxp)
其中P和PN分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。
还有一个函数是mapminmax,该函数可以把矩阵的每一行归一到[-1 1].
mapminmax语句的语法格式是:[y1,PS] = mapminmax(x1)
其中x1 是需要归一的矩阵 y1是结果。
当需要对另外一组数据做归一时,就可以用下面的方法做相同的归一了
y2 = mapminmax('apply',x2,PS)
当需要把归一的数据还原时,可以用以下命令:
x1_again = mapminmax('reverse',y1,PS)
prestd、poststd、trastd
prestd归一到单位方差和零均值。
pminp和maxp分别为P中的最小值和最大值。mint和maxt分别为T的最小值和最大值。