为了消除数据特征之间的 量纲 的影响,我们需要对特征进行 归一化处理,使得不同指标之间具有可比性。
例如,分析一个人的 身高 和 体重 对健康的影响,如果使用米(m)和千克(kg)作为单位,那么身高特征会在1.6~1.8m的数值范围内,体重特征会在50~100kg的范围内,分析出来的结果显然会倾向于 数值差别比较大的体重特征 。想要得到更为准确的结果,就需要进行 特征归一化(Normalization)处理 ,使各指标处于 同一数值量级 ,以便进行分析。
为什么需要对数值类型的特征做归一化?※
对数值类型的特征做归一化可以将所有的特征都统一到一个大致的量纲内,最常用的两种方法:
- 线性函数归一化(Min-Max Scaling)。它对原始数据进行线性变换,使结果映射到[0, 1]的范围内,实现对原始数据的等比缩放,归一化公式如下:
。其中X为原始数据,
分别为数据的最大值和最小值。
- 零均值归一化(Z-Score Normalization)。它会将原始数据映射到均值为0、标准差为1的分布上。具体来说,假设原始特征的均值为μ、标准差为σ,那么归一化公式定义为
。
为什么需要对数值型特征做归一化呢?
我们可以借助梯度下降的例子来说明归一化的重要性。假设有两组数值型特征,于是可以构造一个目标函数符合下图(a)的等值线图。在学习速率相同的情况下,
的更新速度会大于
,需要较多的迭代才能找到最优解。如果将
和
归一化到相同的数值区间后,优化目标的等值图会变成下图(b)中的圆形,
和
的更新速度变得更为一致,容易更快地通过梯度下降找到最优解。

当然,数据归一化并不是万能的。在实际应用中,通过梯度下降法求解的模型通常是需要归一化的,包括线性回归、逻辑回归、支持向量机、神经网络等模型。但对于决策树模型则并不适用,决策树在进行 节点分裂 时主要依据数据集D关于特征x的 信息增益比 ,而信息增益比跟特征是否经过归一化是无关的,因为归一化并不会改变样本在特征x上的信息增益。
