原文来自:微信公众号【精算小生】
在进行机器学习、数据挖掘相关工作中,数据准备、数据预处理和特征提取等几个步骤几乎要花费整个项目甚至超过一半的工作时间。数据及特征处理中,数据的归一化处理则是极为重要的环节。那归一化究竟需要在什么情形下使用,有什么作用呢?今天就对归一化进行梳理总结。
1 归一化定义
把数据变成[0,1]或者[-1,1]之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。归一化将有量纲表达式变成无量纲表达式,便于不同单位或量级的指标能够进行比较和加权成为纯量。
对于归一化的类别,使用最多的就是线性归一化中的Min-MaxNormalization,其公式如下:
还有很多有关的非线性归一化,既可以通过拟合指定分布,根据样本观测值的大小计算出在该分布下的累计分布概率值;也可以做对数函数、反余切函数等非线性变换。
PS:
标准化:最常用的是Z-Score标准化,也就是将原数据分布标准化为标准正态分布,标准化后会使每个特征中的数值平均变为0(将每个特征的值都减掉原始资料中该特征的平均)、标准差变为1,及先平移后放缩,这个方法被广泛的使用在许多机器学习算法中(例如:支持向量机、逻辑回归和类神经网络)。
中心化:平均值为0,对标准差无要求
归一化和标准化的区别
归一化和标准化其实在某种程度上非常相似,归一化是将样本的特征值转换到同一量纲下把数据映射到[0,1]或者[-1, 1]区间内,仅由变量的极值决定,因区间放缩法是归一化的一种。标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,转换为标准正态分布,和整体样本分布相关,每个样本点都能对标准化产生影响。它们的相同点在于都能取消由于量纲不同引起的误差;都是一种线性变换,都是对向量X按照比例压缩