归⼀化处理的⽬的和意义
1.为什么进⾏数据的归⼀化处理?
2.matlab⾥归⼀化的⽅法有哪些?
1.归⼀化处理的⽬的和意义
归⼀化的具体作⽤是归纳统⼀样本的统计分布性。归⼀化在0-1之间是统计的概率分布,归⼀化在-1--+1之间是统计的坐标分布。归⼀化有同⼀、统⼀和合⼀的意思。⽆论是为了建模还是为了计算,⾸先基本度量单位要同⼀,神经⽹络是以样本在事件中的统计分别⼏率来进⾏训练(概率计算)和预测的,且sigmoid函数的取值是0到1之间的,⽹络最后⼀个节点的输出也是如此,所以经常要对样本的输出归⼀化处理。归⼀化是统⼀在0-1之间的统计概率分布,当所有样本的输⼊信号都为正值时,与第⼀隐含层神经元相连的权值只能同时增加或减⼩,从⽽导致学习速度很慢。另外在数据中常存在奇异样本数据,奇异样本数据存在所引起的⽹络训练时间增加,并可能引起⽹络⽆法收敛。为了避免出现这种情况及后⾯数据处理的⽅便,加快⽹络学习速度,可以对输⼊信号进⾏归⼀化,使得所有样本的输⼊信号其均值接近于0或与其均⽅差相⽐很⼩。
2.matlab⾥常见归⼀化的⽅法
第⼀种:在matlab⾥⾯,⽤于归⼀化的⽅法共有三种:
(1)线性函数的转换,表达式如下:
y=(x-MinValue)/(MaxValue-MinValue) (归⼀到0 1 之间)
y=0.1+(x-min)/(max-min)*(0.9-0.1)(归⼀到0.1-0.9之间)
说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最⼤值和最⼩值。
(2)对数函数转换,表达式如下:
y=log10(x)
说明:以10为底的对数函数转换。
(3)反余切函数转换,表达式如下:
y=atan(x)*2/PI
第⼆种:premnmx、tramnmx、postmnmx、mapminmax
premnmx函数⽤于将⽹络的输⼊数据或输出数据进⾏归⼀化,归⼀化后的数据将分布在[-1,1]区间内。
premnmx语句的语法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T),其中P,T分别为原始输⼊和输出数据。
在训练⽹络时如果所⽤的是经过归⼀化的样本数据,那么以后使⽤⽹络时所⽤的新数据也应该和样本数据接受相同的预处理,这就要⽤到tramnmx函数:
value函数什么意思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的最⼩值和最⼤值
1.为什么进⾏数据的归⼀化处理?
2.matlab⾥归⼀化的⽅法有哪些?
1.归⼀化处理的⽬的和意义
答:归⼀化的具体作⽤是归纳统⼀样本的统计分布性。归⼀化在0-1之间是统计的概率分布,归⼀化在-1--+1之间是统计的坐标分布。归⼀化有同⼀、统⼀和合⼀的意思。⽆论是为了建模还是为了计算,⾸先基本度量单位要同⼀,神经⽹络是以样本在事件中的统计分别⼏率来进⾏训练(概率计算)和预测的,且sigmoid函数的取值是0到1之间的,⽹络最后⼀个节点的输出也是如此,所以经常要对样本的输出归⼀化处理。归⼀化是统⼀在0-1之间的统计概率分布,当所有样本的输⼊信号都为正值时,与第⼀隐含层神经元相连的权值只能同时增加或减⼩,从⽽导致学习速度很慢。另外在数据中常存在奇异样本数据,奇异样本数据存在所引起的⽹络训练时间增加,并可能引起⽹络⽆法收敛。为了避免出现这种情况及后⾯数据处理的⽅便,加快⽹络学习速度,可以对输⼊信号进⾏归⼀化,使得所有样本的输⼊信号其均值接近于0或与其均⽅差相⽐很⼩。
2.matlab⾥常见归⼀化的⽅法
第⼀种:在matlab⾥⾯,⽤于归⼀化的⽅法共有三种:
(1)线性函数的转换,表达式如下:
y=(x-MinValue)/(MaxValue-MinValue) (归⼀到0 1 之间)
y=0.1+(x-min)/(max-min)*(0.9-0.1)(归⼀到0.1-0.9之间)
说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最⼤值和最⼩值。
(2)对数函数转换,表达式如下:
y=log10(x)
说明:以10为底的对数函数转换。
(3)反余切函数转换,表达式如下:
y=atan(x)*2/PI
第⼆种:premnmx、tramnmx、postmnmx、mapminmax
premnmx函数⽤于将⽹络的输⼊数据或输出数据进⾏归⼀化,归⼀化后的数据将分布在[-1,1]区间内。
premnmx语句的语法格式是:[Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T),其中P,T分别为原始输⼊和输出数据。
在训练⽹络时如果所⽤的是经过归⼀化的样本数据,那么以后使⽤⽹络时所⽤的新数据也应该和样本数据接受相同的预处理,这就要⽤到tramnmx函数: tramnmx语句的语法格式是:[PN]=tramnmx(P,min
p,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的最⼩值和最⼤值
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论