听见涛声_数说张小桃

日拱一卒 | 梳理、沉淀、数据科学家踩坑之路 | 努力成为数据分析领域python最强的人

导航

数据标准化和归一化 方法小结

 

特征缩放主要几种方法:

类型 规范化方法 sklearn 类名  说明
标准化 Standardization 标准差标准化  StandardScaler  得到均值为0,标准差1的近似正态分布。如果存在异常值,标准化后影响程度也被降低。
 / 稳健标准化  RobustScaler RobustScaler和StandardScaler比较近似,但是它并不是用均值和方差来进行转换,而是使用中位数和四分位矩。我个人比较喜欢将RobustScaler这种方法称为“粗暴缩放”,因为它会直接把一些异常值踢出去,有点类似我们看体育节目中评委常说的‘去掉一个最高分,去掉一个最低分’这样的情况。
区间化 Min-max normalization 极差归一化  MinMaxScaler  移动并缩放数据,默认区间化到[0,1],也可指定到其它任何区间。
/ Scaling to unit length 缩放至单位长度  Normalizer 对每个样本点进行缩放,使得特征向量的欧式长度等于1。注意:这种是以样本(行)为单位,不是以特征(列)为单位 进行L1或L2范数变换计算。

 

  • 背景——>为什么要标准化?

  数据标准化处理是数据挖掘的一项基础工作,不同指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果误差,为了消除不同指标之间的量纲和取值范围差异的影响,需要进行数据标准化处理,以解决数据指标之间的可比性。

  什么是消除指标的量纲?

  一般情况下,我们所收集的数据是有单位的,比如收集到一份个人信息,其中包括人的身高和体重两个指标,身高有单位cm,体重有单位kg,这俩指标对应数据量级差别就很大,导致数据的分析结果可能由量级较大的指标值决定,而忽略了量级小的指标。所以消除量纲是有必要的,去除不同指标数据单位的不统一,使之全部变成没有单位的可比较的数据,便于之后的分析。消除指标的量纲就是消除它们的单位。

什么是量纲?

物理量按照其属性分为两类:
1.物理量的大小与度量所选用的单位有关,称为有量纲量
2.物理量的大小与度量所选的单位无关,称为无量纲量

去量纲指的是去除数据单位之间的不统一,将数据统一变换为无单位(统一单位)的数据集。

  标准化(standardization)和归一化(normalization)都属于特征缩放(feature scaling)的方法,可以统称为数据“规范化”

 

 

  • 标准化vs归一化vs中心化定义

  (1)如,Z-score结果只是消除量纲单位影响,统一变成均值0,标准差1的分布(不一定正态),使得不同变量之间具有可比性,叫做标准化

  (2)如,min-max除了消除量纲,还将结果都映射到一定区间默认[0~1])内,归一化因此得名,归一化也属于标准化范畴。

  (3)数据的中心化是指原数据减去其平均值后(即离差结果),原数据的坐标平移至中心点(0,0),该组数据的均值将变为0,因此,也被称为零均值化

    简单举例:譬如某小公司老板员工共5人,5人的工资,分别为12000、5000、8000、3000、4000元,这5个数据作为一个独立的数据集,平均值为6400元,每个人的工资依次减去平均水平6400,得到5600、-1400、1600、-3400、-2400,新的5个数据其平均值等于0,这个过程就是数据的中心化。

 

  • 标准化和归一化联系和区别

联系

标准化和归一化本质上都是对数据的线性变换,对向量X按照比例压缩再进行平移。二者都不会改变原始数据排列顺序。

 

区别

1、归一化会严格的限定变换后数据的范围,如默认[0 ,1]区间;标准化变换后的数据没有严格区间范围,只是其均值是0 ,标准差为1 的分布。

2、以min-max归一化为例,缩放比例只和极限值有关,通常受异常值影响大;Z分数标准化分母是标准差,缩放比例受所有样本点影响。

 

 

  • 数据规范化两个主要作用

(1)保障模型准确性

消除量纲单位,减少方差大的特征的影响,使不同量纲的特征处于同一数值量级,指标之间具有可比性,适合进行综合对比评价,提高分类器的准确性;

一些算法需要计算样本点之间的距离(如欧氏距离),例如KNN、kmeans等聚类算法。如果一个特征变量值域范围非常大,那么距离计算就主要取决于这个特征,出现“大数吃小数”的情况,从而与实际情况相悖。

(2)加快收敛速度

在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度下降的求解速度,即提升模型的收敛速度。对于线性模型,数据归一化使梯度下降过程更加平缓,更易正确的收敛到最优解。

  (3)将数据限制到一定区间,使得运算更为便捷

 

 

  • 数据规范化2种方法(常用

1,2方法都需要依赖样本所有数据,而3方法只依赖当前数据,可以动态使用,好理解。

1. Z-score标准化方法(标准差标准化 |0-1标准化)——>消除量纲影响,结果映射为均值为0,标准差为1的分布

转化函数为:

 ,其中 μ为所有样本数据的均值(mean),σ为所有样本数据的标准差(standard deviation)。

性质:

(1)根据公式,新得到的标准化数据的意义是“给定数据距离均值相对来说有多少个标准差”。各个指标数据标准化之后数据就会全部统一起来,就不会有的指标数据非常大比如10000,而有的指标数据非常小比如10。

(2)如果原数据正态分布,经过标准化的数据就是标准正态分布,即均值为0,标准差为1。

(3)在Z-score标准化中,新的数据由于对方差进行了归一化,这时候每个维度的量纲其实已经等价了,每个维度都服从均值为0,、方差为1的正态分布,在计算距离的时候,每个维度都是去量纲化的,避免了不同量纲的选取对距离计算产生的巨大影响。

适用:

(1)适用于本身服从正态分布的数据。

(2)如果无从下手,可以优先考虑使用Z-score标准化,更通用,

(3)在后续算法计算中,涉及距离度量(KNN、聚类分析)或者协方差分析(PCA、LDA等)的,同时数据分布近似为正态分布,使用0均值化(Z-score)标准化表现更好(避免不同量纲对方差、协方差计算的影响)。因为Z-score标准化分母是标准差,该值综合了一个特征的所有值相对适中,按照标准差缩放更好保持了样本间距, 降低异常值影响。

(4)适用于特征变量最大值和最小值未知的情况。

 

 

2. min-max归一化(极差归一化)——>结果默认映射到[0,1]之间

转换函数如下:

性质:其中max为样本数据的最大值,min为样本数据的最小值。是对原始数据的线性变换,使结果值映射到[0 – 1]之间。

适用:

(1)适用异常值较少,分布范围较稳定的数据。

(2)对处理后的数据区间范围有严格要求,eg:图像处理中,将RGB图像转换为灰度图像后将其值限定在 [0, 255] 的范围。

(3)或者不涉及距离度量、协方差计算。

缺点:

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

(2)另外,使用Max-Min标准化后,其协方差产生了倍数值地缩放,因此这种方式无法消除量纲对方差、协方差的影响,对PCA分析影响巨大.。因为当特征中有异常值时,由于min-max归一化分母是max-min,统一除以它,有可能将正常的数值“挤”到一起去,而标准化更好保持了样本间距。比如三个样本,某个特征的值为1,2,10000,假设10000这个值是异常值,用归一化的方法后,正常的1,2就会被“挤”到一起去。如果不幸的是1和2的分类标签还是相反的,那么,当我们用梯度下降来做分类模型训练时,模型会需要更长的时间收敛,因为将样本分开需要更大的努力!而标准化在这方面就做得很好,至少它不会将样本“挤到一起”。

延申:如果想要将数据映射到[-1,1],则将公式换成:(X-Mean)/(Max-Min)。也可以根据(min-max归一化系数)*(b-a)+a 转换到任意 [a ,b] 区间。

 

补充:RobustScaler-稳健标准化(不常用)

转换函数:

,median是某特征中位数,IQR是四分位距;

处理方法:该缩放器删除中位数,并根据百分位数范围(默认值为IQR:四分位间距)缩放数据;

适用:当数据带有较多的离群值,推荐使用。RobustScaler和StandardScaler(标准差标准化)比较近似,但是它并不是用均值和方差来进行转换,而是使用中位数和四分位矩。

 

 

  • 其它非线性变换

3. Z-scores 简单化——>结果映射到[0,1]之间

  模型如下:x = 1/(1+x)

  性质:x越大证明x越小,这样就可以把很大的数规范在[0 , 1]之间了。

  应用:在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维、涉及到正态分布的时候使用该方法较好。

 

4. 三角函数——>结果映射到[0,1]之间

  三角函数的值在[0, 1]之间,如果有需要,可以用三角函数进行变换。

 

5. sigmoid函数——>结果映射到[0,1]之间

  sigmoid函数,也称S型函数,公示为:S(x) = 1/(1+e-1)      可将数据映射到[0 ,1]

  作用:可以对数据进行有效的压缩。特别的,S型函数在逻辑回归中起着决定性作用。

 

6. 对数变换

  对数规范化的常见形式是:-ln(x+1) ——>当x大于0时,结果映射到[0 ,+∞]

  应用:在实际工程中,经常会有类似点击次数/浏览次数的特征,这类特征是长尾分布的,可以将其用对数函数进行压缩。特别的,在特征相除时,可以用对数压缩之后的特征相减得到。

 7. 小数定标

  小数定标主要是对单位的换算和进制的转换,使得数据得到一定的简化与压缩。

  如通过移动小数点的位置来进行标准化,小数点移动多少位取决于属性A中取值的最大绝对值,计算方法x'=x/(10k),k是满足条件的最小整数。假如A属性从-988~918 ,我们用1000(即k=3)除每个值,这样-988就被规范化为-0.988。

 

8.box-cox变换

boxcox变换主要是降低数据的偏度,通常回归模型残差非正态或异方差的时候,会选择对y做boxcox变换,降低y的偏度,让y更接近正态。

 

参考

【1】标准化和归一化,请勿混为一谈,透彻理解数据变换

【2】归一化(normalization)、标准化(standardization)以及正则化(regularization)比较

【3】数据为什么要标准化?

【4】归一化(MINMAX)和标准化(STANDARD)哪个更好?

 

posted on 2020-04-14 11:37  数说张小桃  阅读(2411)  评论(0编辑  收藏  举报