机器学习速成·分类(4/4):预测偏差与多类别分类
本文参考 Google 机器学习速成课程 - 分类:预测偏差(Prediction Bias) 与 多类别分类(Multiclass) 两个模块撰写,作为分类系列的收官:一个快速体检工具(预测偏差)和一个更复杂的分类形态(多类别)。
一、预测偏差(Prediction Bias):模型体检的”快速试纸”
预测偏差 = 模型预测结果的平均值 − 数据中标准答案(ground truth)标签的平均值。
这是一个快速检查,能在早期发现模型或训练数据的问题。
1.1 什么算”零偏差”?
举例:训练数据集中 5% 的邮件是垃圾邮件(标签平均值 = 0.05),那么平均而言,模型的预测平均值也应该是 0.05——此时预测偏差为 0。
当然,零偏差不代表模型没问题,只是说”平均预测水平对得上”。
1.2 什么时候说明有问题?
如果模型平均预测垃圾邮件的概率为 50%(而真实比例只有 5%),这两个平均值差异显著,就说明存在预测偏差——问题可能出在训练数据、模型本身或应用环境。
二、预测偏差的四个可能成因
| 成因 | 说明 |
|---|---|
| 数据中的偏差或噪声 | 包括训练集的抽样偏差(样本不能代表真实分布) |
| 正则化过强 | 模型过于简单,丢失了必要的复杂度 |
| 训练流水线中的 bug | 代码/流程错误导致预测系统性偏移 |
| 特征集不足 | 提供给模型的特征不足以完成任务 |
排查思路:发现偏差 → 按以上四项逐一排查(数据 → 正则化 → 流水线 → 特征)。
三、多类别分类(Multiclass Classification)
前面讲的是二元分类(两个类别)。多类别分类则是把分类扩展到两个以上类别。
3.1 核心做法:拆成多个二元分类
如果每个示例只能属于一个类,可以这样处理:
把问题拆成”这一类 vs 其他所有类”的二元分类,然后对每个原始类别重复。
三类别例子(A、B、C):
- 先建一个二元分类器:区分 “A+B” 和 “C”;
- 再建第二个二元分类器:把标记为 “A+B” 的示例重新分类为 A 或 B。
3.2 真实例子:手写数字识别
多类别问题的典型代表是手写数字分类器:输入一张手写数字的图像,输出它代表 0~9 中的哪一个。
3.3 多标签 vs 多类别
| 多类别分类 | 多标签分类 | |
|---|---|---|
| 类成员关系 | 排他(一个示例只能属一个类) | 非排他(一个示例可属多个类) |
| 示例 | 数字 0~9 选一个 | 一张图同时含”天空+山+水” |
多标签场景下,类成员资格不是排他的,一个示例可以同时被分配到多个类。多类别分类的深入内容会在神经网络模块中继续讲。
四、关键术语速查
- 预测偏差(Prediction Bias):预测均值与标准答案均值的差。
- 标准答案(Ground Truth):数据真实的标签。
- 多类别分类(Multiclass Classification):两个以上类别、且每例只属一类的分类。
- 多标签分类(Multilabel Classification):一个示例可同时属于多个类。
- 二元分类:只有两个类别的分类。
总结
| 核心要点 | 关键结论 |
|---|---|
| 预测偏差定义 | 预测均值 − 标准答案均值 |
| 零偏差的含义 | 平均预测水平对得上真实比例(但可能仍有其他问题) |
| 四大成因 | 数据偏差/噪声、正则化过强、流水线 bug、特征不足 |
| 多类别做法 | 拆成”这一类 vs 其他”的多个二元分类 |
| 多标签 vs 多类别 | 多类别排他(选一个);多标签可同时属于多个类 |
一句话:预测偏差是分类模型的”体温计”——平均预测值和真实标签对不上就要警惕;而多类别分类则是把”是/否”问题升级成”是 A、B 还是 C”,靠反复拆成二元分类来解决。