[转载]中心化(又叫零均值化)和标准化(又叫归一化)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[转载]中心化(又叫零均值化)和标准化(又叫归一化)相关的知识,希望对你有一定的参考价值。

参考技术A https://blog.csdn.net/GoodShot/article/details/80373372

一、中心化(又叫零均值化)和标准化(又叫归一化)概念及目的?

1、在回归问题和一些机器学习算法中,以及训练神经网络的过程中,通常需要对原始数据进行中心化(Zero-centered或者Mean-subtraction(subtraction表示减去))处理和标准化(Standardization或Normalization)处理

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。

意义:数据中心化和标准化在回归分析中是取消由于量纲不同、自身变异或者数值相差较大所引起的误差。原理:数据标准化:是指数值减去均值,再除以标准差;

数据中心化:是指变量减去它的均值。

目的:通过中心化和标准化处理,得到均值为0,标准差为1的服从标准正态分布的数据。

2、(1)中心化(零均值化)后的数据均值为零

(2)z-score 标准化后的数据均值为0,标准差为1(方差也为1)

三、下面解释一下为什么需要使用这些数据预处理步骤。

在一些实际问题中,我们得到的样本数据都是多个维度的,即一个样本是用多个特征来表征的。比如在预测房价的问题中,影响房价的因素有房子面积、卧室数量等,我们得到的样本数据就是这样一些样本点,这里的、又被称为特征。很显然,这些特征的量纲和数值得量级都是不一样的,在预测房价时,如果直接使用原始的数据值,那么他们对房价的影响程度将是不一样的,而通过标准化处理,可以使得不同的特征具有相同的尺度(Scale)。简言之,当原始数据不同维度上的特征的尺度(单位)不一致时,需要标准化步骤对数据进行预处理。

下图中以二维数据为例:左图表示的是原始数据;中间的是中心化后的数据,数据被移动大原点周围;右图将中心化后的数据除以标准差,得到为标准化的数据,可以看出每个维度上的尺度是一致的(红色线段的长度表示尺度)。

其实,在不同的问题中,中心化和标准化有着不同的意义,

比如在训练神经网络的过程中,通过将数据标准化,能够加速权重参数的收敛。

·       对数据进行中心化预处理,这样做的目的是要增加基向量的正交性。

四、归一化

两个优点:

1)归一化后加快了梯度下降求最优解的速度;

2)归一化有可能提高精度。

1、 归一化为什么能提高梯度下降法求解最优解的速度?

如下图所示,蓝色的圈圈图代表的是两个特征的等高线。其中左图两个特征X1和X2的区间相差非常大,X1区间是[0,2000],X2区间是 [1,5],其所形成的等高线非常尖。当使用梯度下降法寻求最优解时,很有可能走“之字型”路线(垂直等高线走),从而导致需要迭代很多次才能收敛;而右图对两个原始特征进行了归一化,其对应的等高线显得很圆,在梯度下降进行求解时能较快的收敛。因此如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。

2、归一化有可能提高精度

一些分类器需要计算样本之间的距离(如欧氏距离),例如KNN。如果一个特征值域范围非常大,那么距离计算就主要取决于这个特征,从而与实际情况相悖(比如这时实际情况是值域范围小的特征更重要)。

3、以下是两种常用的归一化方法:

1)min-max标准化(Min-MaxNormalization)

也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 - 1]之间。转换函数如下:

其中max为样本数据的最大值,min为样本数据的最小值。这种方法有个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。

2)Z-score标准化(0-1标准化)方法

这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1。

转化函数为:

其中 为所有样本数据的均值, 为所有样本数据的标准差。

五、中心化(以PCA为例)

下面两幅图是数据做中心化(centering)前后的对比,可以看到其实就是一个平移的过程,平移后所有数据的中心是(0,0).

在做PCA的时候,我们需要找出矩阵的特征向量,也就是主成分(PC)。比如说找到的第一个特征向量是a = [1, 2],a在坐标平面上就是从原点出发到点 (1,2)的一个向量。

如果没有对数据做中心化,那算出来的第一主成分的方向可能就不是一个可以“描述”(或者说“概括”)数据的方向了。还是看图比较清楚。

黑色线就是第一主成分的方向。只有中心化数据之后,计算得到的方向才2能比较好的“概括”原来的数据。

参考:

1.https://blog.csdn.net/goodshot/article/details/79488629

2.https://blog.csdn.net/GoodShot/article/details/78241862

归一化 (Normalization)标准化 (Standardization)和中心化/零均值化 (Zero-centered)

1 概念

1.1 归一化

1)把数据变成(0,1)或者(1,1)之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。2)把有量纲表达式变成无量纲表达式,便于不同单位或量级的指标能够进行比较和加权。归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。

1.2 标准化

在机器学习中,我们可能要处理不同种类的资料,例如,音讯和图片上的像素值,这些资料可能是高维度的,资料标准化后会使每个特征中的数值平均变为0(将每个特征的值都减掉原始资料中该特征的平均)、标准差变为1,这个方法被广泛的使用在许多机器学习算法中(例如:支持向量机、逻辑回归和类神经网络)。

1.3 中心化

平均值为0,对标准差无要求
x’ = x - μ

1.4 区别

归一化和标准化的区别:
  归一化是将样本的特征值转换到同一量纲下把数据映射到[0,1]或者[-1, 1]区间内,仅由变量的极值决定,因区间放缩法是归一化的一种。
  标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,转换为标准正态分布,和整体样本分布相关,每个样本点都能对标准化产生影响。它们的相同点在于都能取消由于量纲不同引起的误差;都是一种线性变换,都是对向量X按照比例压缩再进行平移。
  标准化和中心化的区别
  标准化是原始分数减去平均数然后除以标准差,中心化是原始分数减去平均数。 所以一般流程为先中心化再标准化。
  无量纲:我的理解就是通过某种方法能去掉实际过程中的单位,从而简化计算。

2 为什么要归一化/标准化?

如前文所说,归一化/标准化实质是一种线性变换,线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现,这些性质是归一化/标准化的前提。比如有一个很重要的性质:线性变换不会改变原始数据的数值排序。
1)归一化后加快了梯度下降求最优解的速度
2)归一化有可能提高精度
https://zhuanlan.zhihu.com/p/27627299
https://zhuanlan.zhihu.com/p/30358160

3 常见的方法

3.1 Min-Max Normalization(归一化方法)

在这里插入图片描述
其中max为当前样本数据中, 该属性的最大值, min为最小值.
本质:将数据映射到(0,1)或者(-1,1)
这种方法处理速度快, 但是, 当有新的数据加入时, max和min发生变化, 需要重新归一化。
如果想要将数据映射到(-1,1),则将公式换成:(X-Mean)/(Max-Min)

3.2 Z-score standardization(标准化方法)

这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,转化函数为:
在这里插入图片描述
其中, μ为样品的均值, σ为样品的标准差。
本质:把有量纲表达式变成无量纲表达式。

4 两种方法的使用场景

1)在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,第二种方法(Z-score standardization)表现更好。

因为:第一种方法(线性变换后),其协方差产生了倍数值的缩放,因此这种方式无法消除量纲对方差、协方差的影响,对PCA分析影响巨大;同时,由于量纲的存在,使用不同的量纲、距离的计算结果会不同。

(2)在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在(0 ,255)的范围。

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

参考:
https://zhuanlan.zhihu.com/p/27627299
https://zhuanlan.zhihu.com/p/30358160
https://blog.csdn.net/program_developer/article/details/78637711

以上是关于[转载]中心化(又叫零均值化)和标准化(又叫归一化)的主要内容,如果未能解决你的问题,请参考以下文章

归一化 (Normalization)标准化 (Standardization)和中心化/零均值化 (Zero-centered)

归一化 (Normalization)标准化 (Standardization)和中心化/零均值化 (Zero-centered)

归一化 (Normalization)标准化 (Standardization)和中心化/零均值化 (Zero-centered)

matlab中啥叫归一化坐标

中心化、标准化、归一化?

sklearn进行对数据标准化、归一化以及将数据还原的方法