为什么需要对数值类型的特征做归一化?
1. 举例子
比如分析一个人的身高和体重对健康的影响,身高的单位是m,范围是1.6-1.8
体重的单位是kg,在50kg-100kg之间,分析出的结果自然会倾向于数值差异较大的体重特征。因此我们需要数值归一化,使得各个指标处于同一数量量级
2.归一化有哪些方法
(1) 线性函数归一化(Min-Max Scaling)
对原始数据进行线性变换,实现对原数据的等比缩放
X
n
o
r
m
=
X
−
X
m
i
n
X
m
a
x
−
X
m
i
n
X_{norm}=\frac{X-X_{min}}{X_{max}-X_{min}}
Xnorm=Xmax−XminX−Xmin
(2) 零均值归一化 (Z-Score Normalization)
将原始数据映射到标准正态分布上(基于假设大多数原有数据都属于正态分布)
z
=
x
−
u
σ
z=\frac{x-u}{\sigma}
z=σx−u
3.归一化对于梯度下降也有加速作用
归一化后的数据有助于在求解是缓解求解过程中的参数寻优的动荡,以加快收敛。对于不归一化的收敛,可以发现其参数更新、收敛如左图,归一化后的收敛如右图。可以看到在左边是呈现出之字形的寻优路线,在右边则是呈现较快的梯度下降