一. 概念
归一化:
1)只需把数据规范到(0,1)之间,而对均值和标准差没有要求。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。
2)把有量纲表达式变成无量纲表达式将不同单位的数据变成没有单位的纯量,便于不同单位或量级的指标能够进行比较和加权。归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。
标准化
在机器学习中,我们可能要处理不同种类的资料,例如,音讯和图片上的像素值,这些资料可能是高维度的,资料标准化后会使每个特征中的数值平均变为0(将每个特征的值都减掉原始资料中该特征的平均)、标准差变为1,这个方法被广泛的使用在许多机器学习算法中(例如:支持向量机、逻辑回归和类神经网络)。
中心化:
平均值为0,对标准差无要求
化和标准化的区别:归一化是将样本的特征值转换到同一量纲下把数据映射到[0,1]或者[-1, 1]区间内,仅由变量的极值决定,因区间放缩法是归一化的一种。标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,转换为标准正态分布,和整体样本分布相关,每个样本点都能对标准化产生影响。它们的相同点在于都能取消由于量纲不同引起的误差;都是一种线性变换,都是对向量X按照比例压缩再进行平移。
标准化和中心化的区别:标准化是原始分数减去平均数然后除以标准差,中心化是原始分数减去平均数。 所以一般流程为先中心化再标准化。
无量纲:我的理解就是通过某种方法能去掉实际过程中的单位,从而简化计算。
注意
归一化和标准化的相同点都是对某个特征(column)进行缩放(scaling)而不是对某个样本的特征向量(row)进行缩放。对特征向量进行缩放是毫无意义的,比如三列特征:身高、体重、血压。每一条样本(row)就是三个这样的值,对这个row无论是进行标准化还是归一化都是好笑的,因为你不能将身高、体重和血压混到一起去!而是当样本体重之间的量纲不同时,才能进行,比如一个人的身高170cm,另一个人的身高1.7m,这样的数据需要归一化才能进行比对。
在线性代数中,将一个向量除以向量的长度,也被称为标准化,不过这里的标准化是将向量变为长度为1的单位向量,它和我们这里的标准化不是一回事儿,不要搞混哦
二 为什么要归一化/标准化
如前文所说,归一化/标准化实质是一种线性变换,线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现,这些性质是归一化/标准化的前提。比如有一个很重要的性质:线性变换不会改变原始数据的数值排序。
- 某些模型的需要
1). 在使用梯度下降的方法求解最优化问题时, 归一化/标准化后可以加快梯度下降的求解速度,即提升模型的收敛速度。如左图所示,未归一化/标准化时形成的等高线偏椭圆,迭代时很有可能走“之”字型路线(垂直长轴),从而导致迭代很多次才能收敛。而如右图对两个特征进行了归一化,对应的等高线就会变圆,在梯度下降进行求解时能较快的收敛。
2). 一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。 - 无量钢化
例如房子数量和收入,因为从业务层知道,这两者的重要性一样,所以把它们全部归一化。 这是从业务层面上作的处理。 - 避免数值问题
太大的数会引发数值问题。
三. 常用的标准化,归一化方法
前两种是归一化的方法,第三种是标准化的方法。
四. 什么时候要用归一化?什么时候用标准化?
(1)如果对输出结果范围有要求,用归一化。
(2)如果数据较为稳定,不存在极端的最大最小值,用归一化。
(3)如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响。
标准化相对于归一化的优点:当有极端噪点的时候可以更为妥善的处理,举个例子,假设数据集 X = { 1 , 2 , 3 , 4 , 5 , 10000 } X=\{1,2,3,4,5,10000\} X={1,2,3,4,5,10000},对其分类,大于3的为一,否则为0,如果采用线性比例变换,那么数据变成 X = { 1 / 10000 , 2 / 10000 , 3 / 10000 , 4 / 10000 , 5 / 10000 , 1 } X=\{1/10000,2/10000,3/10000,4/10000,5/10000,1\} X={1/10000,2/10000,3/10000,4/10000,5/10000,1},在整个区间上前五个数据都极为接近,而与最后一个数据差距很大,这样在跟新梯度的时候,前五个数据的分类会变得很慢。标准化后虽然也会有极大噪音存在,但是正态分布的数据绝大部分聚集在 [ − 3 σ , 3 σ ] [-3\sigma,3\sigma] [−3σ,3σ]之间,可以去掉范围之外的的点,去噪音。
归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)