首先介绍一下归一化(Normalization)、标准化(Standardization)以及零均值化(zero-mean)分别的公式和概念。
归一化的公式为:
x
∗
x^*
x∗=
x
−
x
m
i
n
x
m
a
x
−
x
m
i
n
\frac{x-x_{min}}{x_{max}-x_{min}}
xmax−xminx−xmin
其中:
x为某个特征的原始值
x
m
i
n
x_{min}
xmin 为该特征在所有样本中的最小值
x
m
a
x
x_{max}
xmax为该特征在所有样本中的最大值,
x
∗
x^*
x∗为经过归一化处理后的特征值。
通过该公式,某个特征的值会被映射到[0,1]之间,消除量纲对最终结果的影响,使不同的特征具有可比性。
(量纲:物理量的大小与单位有关。从这句话我们来思考下最核心的两个单词:大小、单位。就是说量纲是有两部分组成:数、单位。就比如1块钱和1分钱,就是两个不同的量纲,因为度量的单位不同了)
标准化的公式为:
x
∗
x ^∗
x∗ = =
x
−
μ
σ
\frac{x-\mu}{\sigma}
σx−μ
其中:
x为某个特征的原始值(训练样本中某个特征值组成的向量)
μ
\mu
μ为该特征在所有样本中的平均值(训练样本中的均值)
σ
\sigma
σ为该特征在所有样本中的标准差(训练样本的标准差) ;标准差:
σ
\sigma
σ=
∑
i
=
1
n
(
x
i
−
μ
)
2
σ
\sqrt {\frac {\sum_{i=1}^{n}(x_i-\mu)^2} {\sigma} }
σ∑i=1n(xi−μ)2
x
∗
x^*
x∗为经过标准化处理后的特征值
即将原值减去均值后除以标准差
,使得得到的特征满足均值为0,标准差为1的正态分布。
标准化(standardization)是一种特征缩放(feature scale)的方法。
梯度下降是受益于特征缩放的算法之一。有一种特征缩放的方法叫标准化,标准化使得数据呈现正态分布,能够帮助梯度下降中学习进度收敛的更快。标准化移动特征的均值(期望),使得特征均值(期望)为0,每个特征的标准差为1。
具体应该选择归一化还是标准化???
如果把所有维度的变量一视同仁,在最后计算距离中发挥相同的作用应该选择标准化;
如果想保留原始数据中由标准差
σ
\sigma
σ所反映的潜在权重关系或数据不符合正态分布时应该选择归一化。
另外,标准化更适合现代嘈杂大数据场景。
归一化、标准化的本质区别是:归一化是把特征缩放到[0,1]之间,标准化是把特征缩放到均值为0,标准差为1。
正则化是与标准化和归一化完全不同的东西,是用于惩罚训练的太好的参数,防止模型过拟合,提高模型的泛化能力。