大家的AI
机器学习Playground 试玩
加载中…

学习

Ch.01

数据缩放与分布变换

年龄多在 20–70,年薪却从 2000 万到 2 亿。机器学习不懂“岁”或“元”,只看数字有多大。原样喂给模型,它可能觉得“年薪五千万,年龄 30 可以忽略”。
数据缩放把大象级和老鼠级的特征换算到同一百分比或分数尺上,在公平擂台上比较。本章用标准化(类似标准分)、Min-Max(塞进小盒子)、鲁棒缩放(忽略卡拉 OK 里突然出现的歌剧名家)讲清原理。

按章节的中级机器学习图示

选择章节后,下方图示会切换为该章节内容。可一览中级机器学习脉络。

数据缩放:统一单位并处理分布

1. 什么是缩放?(统一尺码的鞋)
想象相亲 App 比较年龄差和收入差。年龄差 5 岁、收入差 100 万韩元,人觉得差不多,电脑却觉得“100 万 vs 5,年龄可忽略”。为防止单位不同带来的数字大小独裁,缩放把所有特征放到 0~1 或均值 0 附近的公平刻度上。
2. 标准化:标准分原理
公式:z=x−μσz = \frac{x - \mu}{\sigma}z=σx−μ​
简单科目 90 分、难科目 80 分——看原始分不公平;用均值(μ\muμ)与标准差(σ\sigmaσ)校正后,难题高分者 zzz 更高。标准化是把数据聚到均值 0、方差 1 附近的公平正态场中央。
3. Min-Max:塞进迷你盒子
公式:x′=x−xmin⁡xmax⁡−xmin⁡x' = \frac{x - x_{\min}}{x_{\max} - x_{\min}}x′=xmax​−xmin​x−xmin​​
最小变 000,最大变 111,其余落在 0.2、0.5、0.8 等位置。再大的原始值也压进 [0,1][0,1][0,1] 小盒子,适合像素等固定输入范围。
4. 鲁棒缩放:忽略 K 歌里的帕瓦罗蒂
公式:x′=x−medianIQRx' = \frac{x - \mathrm{median}}{\mathrm{IQR}}x′=IQRx−median​
世界级歌手突然出现在社区 K 歌,平均分被拉垮,大家像跑调。鲁棒缩放只用中位数和IQR(正常中间 50%)画刻度,帕瓦罗蒂级异常值拉不动尺子。
5. 缩放 vs「归一化」一词
同一个词在不同语境里意思不同,容易混淆。归一化有时指 Min-Max 缩放,在深度学习中又指 L2 权重正则。本章的缩放是对齐特征单位与范围的前处理,与基础 ML Ch.13 的正则化不是一回事。
距离扭曲用数字看更直观:年龄差 5、收入差 100 万(韩元)时,欧氏距离约 52+1,000,0002≈1,000,000\sqrt{5^2 + 1{,}000{,}000^2} \approx 1{,}000{,}00052+1,000,0002​≈1,000,000,几乎全来自收入轴。标准化后两轴权重接近,SVM 等距离/间隔模型才能更公平地同时看年龄和收入。

缩放方法对比

用叙述说明三种方法为何如此运作,以及各自适合的数据。

方法为何如此
标准化 (Standardization)z=x−μσz=\frac{x-\mu}{\sigma}z=σx−μ​ 问的是「离均值有几个标准差」。因此多数值会聚在 0 附近、散布约 1,便于 SVM 等距离/间隔模型用相近权重比较各特征。但 μ,σ\mu,\sigmaμ,σ 来自全部点的均值与散布,一个异常值就能拉偏均值、放大 σ\sigmaσ,把大多数点挤到奇怪的 zzz 上。
Min-Max 缩放x′=x−xmin⁡xmax⁡−xmin⁡x'=\frac{x-x_{\min}}{x_{\max}-x_{\min}}x′=xmax​−xmin​x−xmin​​ 把最小定为 000、最大定为 111,其余按名次比例落在中间。结果总在 [0,1][0,1][0,1],适合像素(0~255)或期望固定输入区间的神经网络。但刻度两端只依赖最小与最大两点,一个极值抬高 xmax⁡x_{\max}xmax​ 就会把其余值压成 0.01~0.02 一团。
鲁棒缩放 (Robust)x′=x−medianIQRx'=\frac{x-\mathrm{median}}{\mathrm{IQR}}x′=IQRx−median​ 用中位数和 IQR(中间 50% 的宽度)代替均值与标准差。极端值很难拉动中位数和 IQR,因此在收入、支付等长尾、异常值多的数据里,仍能保住「大多数正常点」的刻度。

为何重要

1. 距离/间隔模型(SVM 等)的氧气
这类模型直接依赖距离或间隔。不缩放就像横轴用厘米、纵轴用公里画图,一定乱。
想象只有年龄(约 30–40)和收入(约 4,500–6,100,万韩元)两列的表,收入条形会占满画面。下图左侧是范围失衡,右侧是 z-score 后两轴权重接近的样子。
2. 训练加速器(热狗山 vs 饭碗谷)
未缩放损失面像细长热狗,梯度下降乱 zigzag;缩放后像圆碗,更快滑到谷底。
3. 严禁作弊(数据泄露)
考试前用明天考卷算今天模考均分就是作弊。把训练(Train)和测试(Test)合在一起定缩放标准,等于偷看未来的数据泄露。练习满分、上线崩盘。

如何被使用

按情况选缩放器
没有一种缩放器适合所有数据,先看数据长什么样。
若异常值把均值拉偏,依赖均值和标准差的标准化往往不如鲁棒(Robust)。用中位数和 IQR 画刻度,避免「一个帕瓦罗蒂」毁掉整把尺子。
若像像素那样范围固定在 0–255,且需要 [0,1][0,1][0,1] 这类固定输入,Min-Max 很自然:最小变 000,最大变 111,其余按顺序落在中间。
深度学习或一般数值拿不准时,常先试标准化。三种方法的公式与特点见下方对比表。
训练、验证、测试用同一套标准
实务上先把数据分成训练、验证、测试。缩放标准(均值、最小、最大等)只在训练集上确定,再原样用到验证和测试。若把验证或测试混进去重新定标准,就像用模考分数偷看明天试卷,会造成数据泄露。
交叉验证也一样:每一折只在该折训练部分定标准,验证行只套用已定标准。就算多次模考估分,采分标准也必须每次只来自训练数据,否则上线分数会失真。
长尾分布先 log 再缩放
播放量、GDP 等右偏长尾数据,不要直接上缩放器;先用 x→log⁡(1+x)x \rightarrow \log(1+x)x→log(1+x) 拉平分布,再标准化是常见组合。
按模型记例外
有的模型几乎必须缩放,有的可以省略。像 SVM 这样直接用距离或间隔的算法,若各特征刻度不一,会被数值大的那一轴牵着走,不做缩放时性能常会明显下滑。
决策树和随机森林只问「30 是否大于 3」,看的是排序而不是年薪写成 4,500 万还是 4,500(万)这类绝对大小,因此多半可以不缩放。
神经网络和梯度下降等一点点调权重的模型,输入范围参差时优化容易 zigzag、变慢。用 Min-Max 或标准化把范围对齐,损失面会更平缓,训练也更稳。

实战应用

一句话: 把大象级与老鼠级特征放到公平刻度上,避免距离/梯度模型被单轴牵着走。
实战可以简短选型:异常值多或长尾分布→鲁棒或 log 后标准化;像素或固定 [0,1][0,1][0,1] 输入→Min-Max;SVM、神经网络等一般数值→优先标准化;树和随机森林看排序,缩放通常可省略。
务必遵守一条:不要在测试/验证上重新定标准,只在训练(或 CV 的训练 fold)定标准,其余原样套用。