2018-01-08


"R语言学习笔记之数据标准化"

数据标准化/归一化

数据标准化是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。

归一化的目标

1.把数变为(0,1)之间的小数

 主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。

2.把有量纲表达式变为无量纲表达式

 归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。

归一化的好处

1.提升模型的收敛速度;

2.提升模型的精度;

3.深度学习中数据归一化可以防止模型梯度爆炸。

常见的数据归一化方法

一、max-min标准化(0-1标准化)

对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:


如果想把数据映射到[-1,1]区间,转换函数如下:


这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义.

二、log函数转换

通过以10为底的log函数转换的方法同样可以实现归一下,具体方法如下:


值得注意的是使用x^*=log10(x)对数据进行转换,结果并不一定落在[0,1]区间,要求所有数据都要大于等于1.

三、atan函数转换

用反正切函数也可以实现数据的归一化。


使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上,而并非所有数据标准化的结果都映射到[0,1]区间上。

四、Z-SCORE标准化

最常用的数据标准化方法,经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:


z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况.

五、Decimal scaling小数定标标准化

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


其中,j是满足条件的最小整数。
注意,标准化会对原始数据做出改变,因此需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化。

六、Logistic函数转换

可以将一个实数映射到(0,1)的区间,其转换函数如下:


这个函数的作用就是使得$x^*$在负无穷到0的区间趋向于0,在0到正无穷的区间趋向于1。同样,函数加入了e的幂函数正是为了两极化:正样本的结果将趋近于1,而负样本的结果趋近于0.

七、各方法比较

2018-01-08_第1张图片

你可能感兴趣的:(2018-01-08)