问题出在哪
练习页的成绩单里,三科的分数其实不在同一把尺子上: 数学最高 95、最低 40,拉开了 55 分;英语全班挤在 85 到 95 之间,只有 10 分的空间。 把原始分直接相加,等于让分差最大的科目说了算——数学好的学生占尽便宜,英语好的学生再强也只能贡献几分的优势。
要把三科放到同一把尺子上,就需要归一化。min-max 和 z-score 是最常用的两种, 区别在于各自拿什么当尺子。
min-max:拿最高分和最低分当尺子
$$x' = \frac{x - \min}{\max - \min}$$
本科目的最高分变成 1,最低分变成 0,其他人按比例落在中间。它回答的问题是: "你在本科目的全距里占到了几成?"结果天然落在 $[0,1]$,像一个"得分率",很直观。
它的软肋:
- 整个尺度只由两个极端学生决定。J 数学考 40 还是考 20,会改变其他所有人的数学归一分——尽管其他人什么都没变。离群值越极端,中间所有人被压得越扁。
- 新增样本会重排旧分数。转校生一来,如果刷新了最高分或最低分,全班都要重算。
z-score:拿平均分和标准差当尺子
$$z = \frac{x - \mu}{\sigma}$$
$\mu$ 是本科目的平均分,$\sigma$ 是标准差(分数的典型波动幅度)。z 分的含义是: "你高出平均水平几个标准差?"数学 +2 和英语 +2 可以直接比——都表示"比平均高出两倍典型波动", 不管两科原始分差了多少。
它的特点:
- 对离群值稳健得多。$\mu$ 和 $\sigma$ 由全体学生共同决定,单个极端值的影响被摊薄,不像 min-max 被一个人绑架。
- 无界且有负数。低于平均就是负分——"负分"直观表达了"拖后腿";但如果后续计算不允许负数(比如取对数、算比值),需要再做平移。
一句话对比
min-max 拿"最好和最差的两个人"当尺子,z-score 拿"全班的平均和波动"当尺子。 尺子选谁,就被谁的特性传染——前者脆弱于极端个体,后者依赖整体分布。
数轴上看两种变换
把每科的 10 个分数画在同一条数轴上:横线是全距(min 到 max),盒子是 $\mu \pm \sigma$ 的范围,竖线是平均分。 两种归一化都是"平移 + 缩放",点按钮看同一批点被移到哪里去。A 和 C 有标注,鼠标放到任何点上可以看具体数值。
手算一遍
平均分和标准差的定义(标准差用除以 $n$ 的总体标准差,$n=10$):
$$\mu = \frac{1}{n}\sum_{i=1}^{n} x_i \qquad\qquad \sigma = \sqrt{\frac{1}{n}\sum_{i=1}^{n}\left(x_i - \mu\right)^2}$$
先把每科的四个统计量算出来:
| 科目 | 最高 max | 最低 min | 平均 $\mu$ | 标准差 $\sigma$ |
|---|---|---|---|---|
| 数学 | 95 | 40 | 62.0 | 15.48 |
| 语文 | 85 | 70 | 77.3 | 4.31 |
| 英语 | 95 | 85 | 89.6 | 3.04 |
以数学为例,标准差的计算过程:
$$\sigma_{数} = \sqrt{\tfrac{1}{10}\left[(95-62)^2 + (78-62)^2 + \cdots + (40-62)^2\right]} = \sqrt{239.6} \approx 15.48$$
A 的数学(95 分,全班第 1)
$$\text{min-max}: \frac{95-40}{95-40} = \frac{55}{55} = 1.00 \qquad z: \frac{95-62}{15.48} = \frac{33}{15.48} \approx +2.13$$
两种算法都给出"顶格"的评价,而且 z 分显示他比平均高出两个多标准差。
C 的英语(95 分,全班第 1)
$$\text{min-max}: \frac{95-85}{95-85} = \frac{10}{10} = 1.00 \qquad z: \frac{95-89.6}{3.04} = \frac{5.4}{3.04} \approx +1.78$$
原始分里 C 只比平均分高 5.4 分,但英语的 $\sigma$ 只有 3.04,所以归一化后这点优势被放大成 +1.78 个标准差——和 A 的数学优势已经是同一量级。
A 的英语(88 分,全班第 7)
$$\text{min-max}: \frac{88-85}{95-85} = \frac{3}{10} = 0.30 \qquad z: \frac{88-89.6}{3.04} = \frac{-1.6}{3.04} \approx -0.53$$
88 分听起来不低,但在这个全员高分的科目里低于平均——z 分直接给出负数。
每个学生三科的归一分加起来,就得到 min-max 总和与 z 分总和。全部 10 人 × 3 科的结果在下面的表里。
完整对照表
点任何一列表头就按这一列排序。分别按原始总分、min-max 和、z 分和各排一次, 看看每次的前三名是谁。三个"总/和"列里同时标了该列的名次。
| # | 学生 | 原始分 | min-max | z-score | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 数学 | 语文 | 英语 | 总分 | 数学 | 语文 | 英语 | 和 | 数学 | 语文 | 英语 | 和 | ||
min-max 和 z 分保留两位小数,求和用未舍入的精确值再舍入显示。
排完三次序之后
原始总分的第一名是 A,min-max 和 z-score 的第一名都是 C——同一张成绩单,换一把尺子,冠军就换人。 再留意两件事:H 的原始总分排第 9,归一化后升到第 3;而原始总分的排名顺序和数学单科排名几乎一样。 这两件事说明的是同一个道理:不做归一化,"综合排名"实际上是方差最大那一科的排名。