为什么做特征归一化?
- 特征归一化
特征归一化是将所有特征统一到一个相同数值区间,通常为[0,1]。常用的特征归一化方法有:
1).Min-Max Scaling
对原始数据进行线性变换,使结果映射到[0,1],实现对数据的等比例缩放。
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
其中,
x
m
i
n
x_{min}
xmin、
x
m
a
x
x_{max}
xmax分别为数据最小值、最大值。
2).Z-Score Normalization
将原始数据映射到均值为0,标准差为1的分布上。
X
n
o
r
m
=
X
−
u
δ
X_{norm}=\frac{X-u}{\delta }
Xnorm=δX−u
- 特征归一化原因
在采用基于梯度更新的学习方法(如线性回归、逻辑回归、支持向量机、神经网络等)对模型求解过程中,未归一化的数值特征在学习时,梯度下降较为抖动,模型难以收敛;而归一化之后的数值特征可以使梯度下降较为稳定,进而减少梯度下降次数,易于收敛。 - 是否一定需要特征归一化
一般如果算法本身或相关优化函数受量纲影响大,则需要进行特征归一化。如,逻辑回归本身不受量纲影响,但是其使用梯度下降法求解参数受量纲影响大,如果不进行特征归一化,可能由于变量不同量纲导致参数迭代求解缓慢,影响算法速率。对于决策树这类的算法,不受量纲影响,不需要进行归一化处理。