特征归一化-特征缩放


特征归一化(Feature Normalization),也称为特征缩放(Feature Scaling),是机器学习和数据分析中的一种数据预处理步骤,目的是将数据集中的特征(输入变量)转换到一个统一的标准尺度。许多机器学习算法在输入特征尺度相近时表现更好或收敛更快,因此特征归一化尤为重要。当特征的量纲或范围差异较大时(例如,年龄以“岁”为单位,收入以“元”为单位),归一化就显得非常必要。


常用的特征归一化方法

  1. 最小-最大归一化(Min-Max Scaling)
  2. 将特征缩放到一个固定的范围,通常是 [0, 1]。
  3. 公式:
    [ X_{\text{归一化}} = \frac{X - X_{\text{最小}}}{X_{\text{最大}} - X_{\text{最小}}} ]
  4. 示例:如果一个特征的范围是 10 到 100,归一化后会变为 0 到 1。

  5. 标准化(Z-score Normalization)

  6. 将特征缩放为均值为 0、标准差为 1 的分布。
  7. 公式:
    [ X_{\text{标准化}} = \frac{X - \mu}{\sigma} ] 其中,(\mu) 是均值,(\sigma) 是标准差。
  8. 示例:如果一个特征的均值是 50,标准差是 10,标准化后,数据会集中在 0 附近,大部分值在 -3 到 3 之间。

  9. 鲁棒归一化(Robust Scaling)

  10. 使用中位数和四分位距(IQR)进行缩放,对异常值不敏感。
  11. 公式:
    [ X_{\text{鲁棒}} = \frac{X - \text{中位数}}{\text{IQR}} ]
  12. 示例:如果中位数是 30,IQR 是 15,数据会基于这些统计量进行缩放。

  13. 单位向量归一化(Unit Vector Scaling)

  14. 将每个特征向量缩放到单位长度(例如,欧几里得长度为 1)。
  15. 公式:
    [ X_{\text{单位}} = \frac{X}{|X|} ]
  16. 示例:常用于文本分类或聚类任务。

何时使用特征归一化

  • 对特征尺度敏感的算法:例如 K 近邻(KNN)、支持向量机(SVM)、神经网络以及基于梯度下降的优化算法(如线性回归、逻辑回归)等,归一化可以提高性能。
  • 基于距离的度量:归一化可以确保尺度较大的特征不会主导距离计算。
  • 梯度下降优化:归一化有助于算法更快收敛,因为所有特征对梯度更新的贡献是均衡的。

何时不需要特征归一化

  • 树模型:例如决策树、随机森林、梯度提升树(GBM)等,这些算法基于特征的分割点工作,不受特征尺度影响。
  • 分类特征:归一化不适用于类别型变量(例如性别、颜色)。

实际应用中的注意事项

  • 测试数据的归一化:在归一化训练数据时,需要使用训练数据的统计量(如最小值、最大值、均值、标准差等)对测试数据进行相同的转换,以避免数据泄露。
  • 异常值的影响:最小-最大归一化和标准化对异常值敏感,如果数据中存在异常值,可以考虑使用鲁棒归一化。

通过特征归一化,可以确保机器学习模型在训练和预测时表现更优,同时提高模型的稳定性和可靠性。