Feature Scaling|特征缩放

bolin
发布于 2025-06-21 / 6 阅读
0
0

Feature Scaling|特征缩放

一、特征缩放的含义

特征缩放(Feature Scaling)是数据预处理的关键步骤,它通过调整不同特征的数值范围,使其处于相近的尺度,从而提高机器学习模型的性能和训练效率。

通俗理解

想象你要比较一群人的身高(单位:厘米)和体重(单位:公斤),如果直接用原始数据,身高的数值(如170、180)可能比体重(如60、70)大很多,导致模型更“重视”身高而忽略体重。特征缩放就像把身高和体重都调整到同一个“尺子”上,让它们公平比较,避免某些特征因为数值大而主导模型训练。

例子(一)

特征缩放(图1).png

这幅图展示了特征缩放对模型参数和预测结果的影响,具体分为以下几个部分:

  1. 问题设定

    • 用线性回归模型预测房价:price = w₁x₁ + w₂x₂ + b

    • 特征:

      • x₁:房屋面积(范围 300-2,000 平方英尺)。

      • x₂:卧室数量(范围 0-5)。

    • 一个训练样本:x₁=2000, x₂=5, price=$500k

  2. 未缩放时的参数问题

    • w₁=50(大),w₂=0.1(小),b=50

      • 计算 price = 50*2000 + 0.1*5 + 50 = $100,050.5k(荒谬结果)。

      • 原因:x₁的数值范围(2000)远大于x₂(5),导致w₁主导预测,模型无法合理学习。

  3. 特征缩放后的效果

    • 调整参数为 w₁=0.1(小),w₂=50(大),b=50

      • 计算 price = 0.1*2000 + 50*5 + 50 = $500k(合理结果)。

      • 原因:通过缩放(或调整参数比例),使x₁x₂对预测的贡献平衡,模型更合理。

核心结论:图中通过对比说明,若特征尺度差异大,需通过特征缩放或调整参数比例,避免某些特征因数值过大而主导模型预测。

例子(二)

特征缩放(图2).png

  1. 表格部分(Feature size and parameter size)

    • 对比两个特征(size in feet²#bedrooms)及其对应参数(wⱼ)的尺度:

      • 特征尺度

        • size in feet²(房屋面积):数值范围大(如300-2000)。

        • #bedrooms(卧室数量):数值范围小(如0-5)。

      • 参数大小

        • 表格中未填写具体数值,但暗示需要调整wⱼ的尺度以匹配特征(如w₁应较小,w₂应较大)。

  2. 散点图(Scatterplot)

    • 横轴是size in feet²(未明确标注),纵轴是#bedrooms(0-5)。

    • 数据点分布:卧室数量(x₂)范围窄,面积(x₁)范围宽,凸显特征尺度差异。

  3. 参数部分(Parameters)

    • 标注了w₁(对应面积)和w₂(对应卧室)的参数大小:

      • 10010:表示参数值的相对大小(w₁需较小,w₂需较大以平衡特征影响)。

  4. 损失函数等高线图(J(w, b) contour plot)

    • 横轴为w₁(面积参数),纵轴可能为w₂(卧室参数)。

    • 等高线形状:若特征未缩放,w₁w₂的尺度差异会导致等高图呈狭窄椭圆,增加梯度下降难度(需更多迭代收敛)。


核心结论

图片通过表格、散点图和等高线图,直观展示了:

  • 特征尺度差异(如面积 vs. 卧室数)如何影响参数大小的设定。

  • 若特征未缩放,模型训练(如梯度下降)可能低效或不稳定,需通过特征缩放或调整参数比例解决。

二、特征缩放优化梯度下降

特征缩放(图3).png

  1. 散点图(Scatterplot)

    • 原始特征

      • 横轴 x₁(房屋面积,范围 300-2000 平方英尺),纵轴 x₂(卧室数量,范围 0-5)。

      • 数据点分布:x₁ 的数值范围远大于 x₂,导致散点图在横轴上拉伸,纵轴上压缩。

    • 缩放后特征(rescaled)

      • 通过特征缩放(如标准化或归一化),x₁x₂ 的尺度被调整到相近范围(如 [0, 1] 或均值为 0),散点图分布更均匀。

  2. 参数与梯度下降(Parameters & Gradient Descent)

    • 原始参数(W₁, W₂)

      • 由于 x₁ 的数值大,对应的参数 W₁ 需要非常小(如 0.1),而 x₂ 的数值小,W₂ 需要较大(如 50),以平衡特征贡献。

      • 这种参数尺度差异会导致损失函数 J(w, b) 的等高线图呈狭窄的椭圆形,梯度下降路径震荡,收敛缓慢。

    • 缩放后参数(rescaled)

      • 特征缩放后,W₁W₂ 的尺度相近,损失函数的等高线图更接近圆形,梯度下降能更直接指向最小值,加快收敛。

三、几种特征缩放的方法

1. 最大值归一化(Max Scaling)

特征缩放(图4).png

这张图展示了 特征缩放(Feature Scaling) 的具体操作,针对两个不同量纲的特征:

  1. 特征1(x₁):房屋面积(单位:平方英尺),原始范围 300-2000。

  2. 特征2(x₂):卧室数量,原始范围 0-5。

图中通过 除以最大值(Max Scaling) 的方法,将这两个特征缩放到 [0, 1] 区间:


公式

特征缩放(图5).png

  • 要求:特征的最小值应为 0(或接近 0),否则缩放后范围不是严格的 [0, 1]。

  • 图中示例

    • 卧室数量(x₂)的最小值为 0,完美符合 [0, 1]。

    • 房屋面积(x₁)的最小值为 300,缩放后范围为 [0.15, 1],非严格 [0, 1]。


特点

  • 优点

    • 计算简单,无需记录最小值(比经典 Min-Max 更轻量)。

    • 适合特征自然以 0 为下限的场景(如计数类特征)。

  • 缺点

    • 对离群值敏感(若某个房屋面积=5000,缩放后其他值会挤在 0-0.4 之间)。

    • 若最小值远离 0(如图中的 x₁),缩放后范围不均衡。


适用场景

  • 数据分布均匀,且最小值接近 0。

  • 需要快速归一化,且对精度要求不高时。


2. 均值归一化(Mean Normalization)

特征缩放(图6).png

这张图展示了 均值归一化(Mean Normalization) 的具体操作,针对两个不同量纲的特征:

  1. 特征1(x₁):房屋面积(单位:平方英尺),原始范围 300-2000,均值 μ₁=600。

  2. 特征2(x₂):卧室数量,原始范围 0-5,均值 μ₂=2.3。

图中通过 均值归一化 方法,将这两个特征缩放到 [-a, a] 的区间(a <1):

  • 房屋面积归一化:

    特征缩放(图7).png

    → 范围变为 -0.18(当 x1=300)到 0.82(当 x1=2000)。

  • 卧室数量归一化:

    特征缩放(图8).png

    → 范围变为 -0.46(当 x2=0)到 0.54(当 x2=5)。


公式

特征缩放(图9).png

  • 核心思想:通过减去均值(中心化)并除以极差(缩放),使数据分布以 0 为中心,范围约在 [-1, 1]附近。

  • 与 Min-Max 的区别

    • Min-Max 强制缩放到 [0, 1],而均值归一化保留负值,适合需要中心化的模型(如 PCA、神经网络)。


特点

  • 优点

    • 保留数据分布的中心(均值为 0),适合对数据偏移敏感的算法。

    • 比标准化(Z-score)更简单(无需计算标准差)。

  • 缺点

    • 对离群值敏感(极差受最大值/最小值影响大)。

    • 范围不严格对称(如图中 x₂ 范围是 [-0.46, 0.54])。


适用场景

  • 数据分布近似均匀,且需要以 0 为中心的场景。

  • 配合梯度下降等优化算法时,可加速收敛。


3. Z-score标准化(Z-score Normalization)

特征缩放(图10).png

这张图展示了 Z-score标准化(Z-score Normalization) 的具体操作,针对两个不同量纲的特征:

  1. 特征1(x₁):房屋面积(单位:平方英尺),原始范围 300-2000,均值 μ₁ 未直接给出,标准差 σ₁=450。

  2. 特征2(x₂):卧室数量,原始范围 0-5,标准差 σ₂=1.4。

通过 Z-score标准化,将这两个特征转换为均值为 0、标准差为 1 的分布:

  • 房屋面积标准化:

    特征缩放(图11).png

    → 范围约为 -0.67(当 x1=300)到 3.1(当 x1=2000)。

  • 卧室数量标准化:

    特征缩放(图13).png

    → 范围约为 -1.6(当 x2=0)到 1.9(当 x2=5)。


公式

特征缩放(图12).png

  • μ:特征的均值,用于中心化(平移)。

  • σ:特征的标准差,用于缩放。


特点

  • 优点

    • 严格使数据均值为 0、标准差为 1,适合大多数模型(如线性回归、SVM、神经网络)。

    • 对离群值不敏感(标准差比极差更稳健)。

  • 缺点

    • 无固定范围,可能导致某些算法(如需要 [0,1] 输入的图像处理模型)需后续调整。

    • 需计算均值和标准差,计算量略大于 Min-Max。


适用场景

  • 数据存在轻微离群值或长尾分布时。

  • 需要数据严格以 0 为中心且尺度一致的场景(如 PCA、梯度下降)。


四、特征缩放的目标范围

特征缩放(图14).png

  1. 理想范围

    • 图中建议大多数特征应落在 -1 ≤ xⱼ ≤ 1 附近(宽松情况下可接受 -3 ≤ xⱼ ≤ 3)。

    • 若数值远超出此范围(如 -100 到 100)或远小于此范围(如 -0.001 到 0.001),则需缩放。

  2. 示例特征范围判断

    • x₁: 0 ≤ x₁ ≤ 3无需缩放(在可接受范围内)。

    • x₂: -2 ≤ x₂ ≤ 0.5无需缩放(接近理想范围)。

    • x₃: -100 ≤ x₃ ≤ 100需缩放("too large",超出合理范围)。

    • x₄: -0.001 ≤ x₄ ≤ 0.001需缩放("too small",数值过小可能导致计算精度问题)。

  3. 核心逻辑

    • 若特征范围与模型期望的输入尺度(如梯度下降的步长、神经网络的激活函数敏感区间)不匹配,则需调整。


评论