机器学习速成·分类(1/4):简介、分类阈值与混淆矩阵
本文参考 Google 机器学习速成课程 - 分类(Classification)简介 与 阈值和混淆矩阵(Thresholding) 两个模块撰写,承接逻辑回归系列,讲清如何把”概率”变成”类别”,以及如何用混淆矩阵评估分类结果。
一、分类解决什么问题?
在逻辑回归模块中,模型输出的是概率(比如”这封邮件是垃圾邮件的概率 75%”)。但很多时候,我们并不想输出概率,而是直接输出类别:
这封电子邮件是”垃圾邮件”还是”非垃圾邮件”?
分类(Classification) 就是预测一个示例属于哪一类。本系列聚焦二元分类(Binary Classification)——即只有两个类别的分类(如 spam / not spam)。
二、分类阈值(Classification Threshold):把概率切成类别
逻辑回归输出的 0~1 概率,需要选一个分类阈值来转换:
- 概率 高于阈值 → 分配到正类别(你要检测的类,如
spam); - 概率 低于阈值 → 分配到负类别(备选类,如
not spam)。
2.1 阈值不是非得 0.5
假设两封邮件得分分别为 0.99 和 0.51:
| 阈值 | 0.99 那封 | 0.51 那封 |
|---|---|---|
| 0.5 | 垃圾邮件 | 垃圾邮件 |
| 0.95 | 垃圾邮件 | 非垃圾邮件 |
虽然 0.5 看似直观,但以下情况不建议用 0.5:
- 错误分类的代价不对称:把合法邮件误判成垃圾,可能比让垃圾邮件漏进来更糟;
- 类别不平衡:比如只有 0.01% 的邮件是垃圾邮件,那么”≥50% 概率就标垃圾”会产生大量误报。
⚠️ 边界情况:预测得分恰好等于阈值时怎么归类取决于实现——例如 Keras 会预测为负类,其他框架可能不同。
三、混淆矩阵(Confusion Matrix):四个格子看透一切
概率得分不是现实,真正重要的是与标准答案(ground truth)对比。二元分类器的每个输出有四种可能结果:
| 实际正例(真是垃圾邮件) | 实际负例(真不是垃圾邮件) | |
|---|---|---|
| 预测为正例 | 真正例 TP:垃圾邮件被正确识别 → 进垃圾文件夹 ✅ | 假正例 FP:合法邮件被误判 → 错进垃圾文件夹 ❌ |
| 预测为负例 | 假负例 FN:垃圾邮件漏检 → 混进收件箱 ❌ | 真负例 TN:合法邮件被正确放行 → 进收件箱 ✅ |
两个重要观察:
- 行和:所有预测正例(TP+FP)和所有预测负例(FN+TN)——不管对不对;
- 列和:所有真实正例(TP+FN)和所有真实负例(FP+TN)——不管模型怎么分。
如果真实正例总数与真实负例总数相差悬殊,就说数据集不平衡。比如几千张云彩照片里,你感兴趣的罕见云(如卷云)只有几张。
四、阈值如何影响四个格子?
不同的阈值通常会让 TP、FP、TN、FN 的数量发生不同变化。 基本原则:
| 提高阈值 | 后果 |
|---|---|
| TP(真正例) | 减少——更严格,能抓住的垃圾邮件变少 |
| FP(假正例) | 减少——误报更少,合法邮件更安全 |
| FN(假负例) | 增加——更多垃圾邮件漏进收件箱 |
| TN(真负例) | 增加——更多合法邮件被正确放行 |
直观理解:阈值越高,模型越”谨慎”——只标记极有把握的垃圾邮件(如 ≥99.99%),误标合法邮件的概率大降,但也更容易漏掉真正的垃圾邮件。
五、常见误区辨析
- 把合法网站误判为恶意软件,叫什么? → 假正例(FP)。合法网站是负例,被错误地归成了正例。
- 提高阈值,FP 和 TP 会怎样? → 两者都减少。预测为正例的总数(TP+FP)整体下降。
- 提高阈值,FN 和 TN 会怎样? → 两者都增加。预测为负例的总数(FN+TN)整体上升。
六、关键术语速查
- 分类阈值(Classification Threshold):把概率切分为类别的分界值。
- 正类别 / 负类别:你要检测的类 / 备选类。
- 混淆矩阵(Confusion Matrix):标准答案 vs 预测结果的 2×2 表。
- TP / FP / FN / TN:真正例 / 假正例 / 假负例 / 真负例。
- 类别不平衡(Class-imbalanced dataset):正负样本数量悬殊的数据集。
- 标准答案(Ground truth):数据真实的标签。
总结
| 核心要点 | 关键结论 |
|---|---|
| 分类做什么 | 输出”属于哪一类”,最常见是二元分类 |
| 阈值怎么选 | 0.5 不是唯一答案;看错误代价与类别是否平衡 |
| 四种结果 | TP/FP/FN/TN 构成混淆矩阵 |
| 阈值↑ | TP↓、FP↓、FN↑、TN↑(模型更”保守”) |
| 不平衡 | 正负样本悬殊时,别直接用 0.5 阈值 |
一句话:分类 = 给逻辑回归的概率”画一条线”,线上是正类、线下是负类;而混淆矩阵就是”实际 vs 预测”的四宫格——看懂它,你才能判断一个分类模型到底值不值得信任。