数据标准化和归一化

 

数据的标准化

  在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。数据标准化也就是统计数据的指数化数据标准化处理主要包括数据同趋化处理和无量纲化处理两个方面。

数据同趋化处理主要解决不同性质数据问题,对不同性质指标直接加总不能正确反映不同作用力的综合结果,须先考虑改变逆指标数据性质,使所有指标对测评方案的作用力同趋化,再加总才能得出正确结果。

数据无量纲化处理主要解决数据的可比性。去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。


数据标准化的方法有很多种,常用的有“最小—最大标准化”、“Z-score标准化”和“按小数定标标准化”等。经过上述标准化处理,原始数据均转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上可以进行综合测评分析。

 一、Min-max 标准化

min-max标准化方法是对原始数据进行线性变换。设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x',其公式为:

新数据=(原数据-极小值)/(极大值-极小值)

 

 二、z-score 标准化

这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x'。z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。

  新数据=(原数据-均值)/标准差

spss默认的标准化方法就是z-score标准化。 用Excel进行z-score标准化的方法:在Excel中没有现成的函数,需要自己分步计算,其实标准化的公式很简单。

步骤如下:
  求出各变量(指标)的算术平均值(数学期望)xi和标准差si ;

  进行标准化处理:zij=(xij-xi)/si,其中:zij为标准化后的变量值;xij为实际变量值。

  将逆指标前的正负号对调。
标准化后的变量值围绕0上下波动,大于0说明高于平均水平,小于0说明低于平均水平。

 

三、Decimal scaling小数定标标准化

  这种方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。将属性A的原始值x使用decimal scaling标准化到x'的计算方法是:x'=x/(10*j)

其中,j是满足条件的最小整数。例如 假定A的值由-986到917,A的最大绝对值为986,为使用小数定标标准化,我们用1000(即,j=3)除以每个值,这样,-986被规范化为-0.986。

注意,标准化会对原始数据做出改变,因此需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化。除了上面提到的数据标准化外还有对数Logistic模式、模糊量化模式等等:

对数Logistic模式:新数据=1/(1+e^(-原数据))模糊量化模式:新数据=1/2+1/2sin[派3.1415/(极大值-极小值)*(X-(极大值-极小值)/2) ] ,X为原数据

 

 

 

数据归一化

  归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。归一化是为了加快训练网络的收敛性,可以不进行归一化处理

  归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在-1--+1之间是统计的坐标分布。归一化有同一、统一和合一的意思。无论是为了建模还是为了计算,首先基本度量单位要同一,神经网络是以样本在事件中的统计分别几率来进行训练(概率计算)和预测的,归一化是同一在0-1之间的统计概率分布;SVM是以降维后线性划分距离来分类和仿真的,因此时空降维归一化是统一在-1--+1之间的统计坐标分布。

  当所有样本的输入信号都为正值时,与第一隐含层神经元相连的权值只能同时增加或减小,从而导致学习速度很慢。为了避免出现这种情况,加快网络学习速度,可以对输入信号进行归一化,使得所有样本的输入信号其均值接近于0或与其均方差相比很小。

  归一化是因为sigmoid函数的取值是0到1之间的,网络最后一个节点的输出也是如此,所以经常要对样本的输出归一化处理。所以这样做分类的问题时用[0.9 0.1 0.1]就要比用要好。但是归一化处理并不总是合适的,根据输出值的分布情况,标准化等其它统计变换方法有时可能更好。

 

归一化方法(Normalization Method)

1。把数变为(0,1)之间的小数 主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。

2 。把有量纲表达式变为无量纲表达式归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。比如,复数阻抗可以归一化书写:Z = R + jωL = R(1 + jωL/R) ,复数部分变成了纯数量了,没有量纲。

 

标准化方法(Normalization Method)

数据的标准化是将数据按比例缩放,使之落入一个小的特定区间。由于信用指标体系的各个指标度量单位是不同的,为了能够将指标参与评价计算,需要对指标进行规范化处理,通过函数变换将其数值映射到某个数值区间。

 

归一化方法主要有如下几种,供大家参考:

1、线性函数转换,表达式如下:

y=(x-MinValue)/(MaxValue-MinValue)

说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。

2、对数函数转换,表达式如下:

y=log10(x)

说明:以10为底的对数函数转换。

3、反余切函数转换表达式如下:

y=atan(x)*2/PI

 

关于用premnmx语句进行归一化:

Premnmx语句格式:

       [Pn,minp,maxp,Tn,mint,maxt]=premnmx(P,T)

其中P,T分别为原始输入和输出数据,minp和maxp分别为P中的最小值和最大值(最大最小是针对矩阵的行来取,而min(p)是针对矩阵的列来取)。mint和maxt分别为T的最小值和最大值。

   premnmx函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在[-1,1]区间内。

我们在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的预处理,这就要用到tramnmx。

 

关于用tramnmx语句进行归一化:

Tramnmx语句格式:

                  [Pn]=tramnmx(P,minp,maxp)

其中P和Pn分别为变换前、后的输入数据,maxp和minp分别为premnmx函数找到的最大值和最小值。

 

posted @ 2015-08-26 17:29  subsir  阅读(4639)  评论(0编辑  收藏  举报