/knowledge/notes/thresholds-roc-auc
概念笔记 · 模型评估
分类阈值与 ROC 曲线
分类器输出分数,你选一个阈值。这篇笔记讲这个选择为什么重要,它控制什么,怎样衡量权衡。
- 学于
- 统计机器学习COMP90051
- 时间
- 2023 年第一学期
- 应用于
- 人类还是机器?
- 阅读 / 复习
- 约 5 分钟阅读2026-10-15
输出分数或概率的分类器要回答的问题,比你想象的多一个:不仅是"这个是正类吗?",还要"我有多大把握才能说是?"。降低阈值会抓到更多正例,但也会误报更多。提高阈值会减少误报,但会漏掉正例。这篇笔记讲的就是这个权衡和怎样衡量它。
01
基本想法
大多数分类器都会产生一个分数:逻辑回归给出概率,线性模型给出一个值,距离型分类器给出相似度。你选一个 阈值,标记所有高于这个值的为正类。这个选择不是在模型里一次定死的,而是一个独立的决策,要根据你的目标来定。
如果你在做病症诊断,漏诊(假负例)可能比误诊(假正例)更严重。你可能会降低阈值,抓到更多病例,即使这样会把一些健康人标记为患者。如果你在批准贷款,情况就反了:虚假放贷会损失钱,所以你提高阈值来更加严格。
混淆矩阵记录四个数:真正例(TP,你说是,你说对了),假正例(FP,你说是,你说错了),真负例(TN,你说否,你说对了)和假负例(FN,你说否,你说错了)。所有指标都是这四个数的某个比例。
02
数学
真正率(敏感度、召回率)是你抓到的所有实际正例的比例:
假正率是你误标的所有负例的比例:
精度回答的是"我说是正例的那些东西,其中有多少真的是正例":
召回率是真正率的另一个名字。F₁ 是精度和召回率的调和平均数,是一个单一数字,如果哪一个很低就会给较低的分数:
ROC 曲线在你改变阈值时,绘制真正率对假正率。一个角落是"所有都标记为正"(高真正率,高假正率)。对面角落是"都标记为否"(低真正率,低假正率)。随机猜测会沿对角线。好的分类器会从对角线上方弯起。曲线下面积(AUC)是一个单数字:0.5 表示随机,1 表示完美。
03
动手试
下面的工具展示两个重叠的分数分布,一个是实际的正例,一个是负例。滑块设定你的阈值。当你移动它时,观察混淆矩阵、指标和 ROC 曲线的变化。
- 把阈值拖到最左。真正率达到 1(你抓到了所有正例),但假正率也达到 1(你把所有负例都标记错了)。
- 把它拖到最右。真正率下降(你漏掉了正例),假正率仍接近零(你没有误标负例)。
- 找到那个"肘部",真正率很高、假正率仍然很低。那是 ROC 曲线从对角线向上弯起的地方。
- 看精度和召回率怎样分化。降低阈值时召回率(真正率)上升,但精度(你预测为正的那些里面,真的是正的比例)下降,因为你多标记了很多负例。
04
我在哪用到它
05
容易出错的地方
06
参考资料
- 接收机操作特性曲线维基百科清晰地介绍 ROC、真正率、假正率和 AUC,还有来自信号检测论的历史背景。
- 模型评估:定量化预测质量scikit-learn 文档所有指标的全面参考,带代码例子和每个的使用时机。