归一化与标准化操作是数据预处理过程中常见的数据处理(特征缩放)方法。常见的归一化标准化有四种。
- 1、极大极小归一化
在数据集中,使用数据的值减去极小值处以极差,得到数值范围在(0,1)范围内的数据集,公式如下
对应为sklearn中的MinmaxScaler - 2、均值归一化
数据值中使用数据减去该数据集的均值处以极差,经过归一化后数值范围在(-1,1)范围内,具体的处理方法如下
对应sklearn中的normalize - 标准化
通常叫做z-score标准化,将数据缩放到(0,1)之间,变为均值为0,标准差为1的分布。原数据集是什么分布,转换后还是什么分布。不会改变数据的分布。 如果原本数据为正态分布,则经过转化后会变成标准正态分布,在统计概率中常用来查询概率。
对应sklearn包中的Standardization。
目前常用的归一化与标准化方法就是上面的三种。二之间的区别和不同的使用条件如下。 - 不管是极大极小归一化还是均值归一化,会受异常值影响较大、
-
在机器学习中,stadardization应用较为全面,对于机器学习数据,基于距离或距离相关性的算法,都会受到数据范围的影响,在神经网络训练中梯度下降算法中,数据就需要进行标准化处理。而基于tree的算法,由于不涉及距离的计算,只计算当前分类的gini系数或者信息熵。因而不需要进行标准化处理。
在一些文章里面看到有说法,Stadardization可以将原有数据变为标准正态分布观点其实是错误的,z-score标准化不会改变原有数据的分布。经过个人测试,生成了一个偏态的beta分布的数据集(上图),经过z-score转化后如下图,发现并没有变成标准正态分布。具体还需要继续学习。。。。。。
normalvsorigin.png