1、引言
在回归问题和一些机器学习算法中,以及训练神经网络的过程中,通常需要对原始数据进行中心化(Zero-centered或者Mean-subtraction)处理和标准化(Standardization或Normalization)处理。但是怎样对矩阵进行中心化和标准化呢,这样做又有什么意义呢?下面我们就来看这两个问题。以下大部分内容来自知乎。
2、矩阵中心化
矩阵中心化是使用数据减去数据的均值。u表示n个数据样本的均值,xi表示数据样本,则数据中心化使用如下公式计算:x‘i = (xi-u) i=1,2,3......n;下面的图(图片来及知乎:https://www.zhihu.com/question/37069477)是数据做中心化(centering)前后的对比,可以看到其实就是一个平移的过程,平移后所有数据的中心是(0,0).
3、矩阵标准化
矩阵标准化的目的是,通过标准化处理,得到均值为0,标准差为1的服从标准正态分布的数据。(相对一维数据来说,也就是相对矩阵的每一列,数据的每一个维度),
矩阵标准化使用如下公式完成:
,μ表示均值,σ表示标准差,(u和σ都可以看成是行向量形式,它们的每个元素分表表示矩阵每一列的均值和方差)可以看出矩阵中心化是矩阵标准化的一步,将中心化的矩阵除以标准差得到标准化矩阵。下面解释为什么要对矩阵进行标准化。
- 简言之,当原始数据不同维度上的特征的尺度(单位)不一致时,需要标准化步骤对数据进行预处理。
- 下图中以二维数据为例:左图表示的是原始数据;中间的是中心化后的数据,数据被移动到原点周围;右图将中心化后的数据除以标准差,得到为标准化的数据,可以看出每个维度上的尺度是一致的(红色线段的长度表示尺度)。