Skip to content
清晨的一缕阳光
返回

机器学习速成·分类(3/4):ROC 曲线与 AUC——看穿所有阈值

机器学习速成·分类(3/4):ROC 曲线与 AUC——看穿所有阈值

本文参考 Google 机器学习速成课程 - 分类:ROC 和曲线下面积(ROC and AUC) 模块撰写,承接上一篇。上一篇的指标都基于单个阈值,这篇我们用一个工具看遍所有阈值下的模型表现。


一、为什么需要 ROC?

上一篇的所有指标(准确率、召回率、FPR…)都是基于某一个固定的分类阈值算出来的。但问题来了:

阈值不同,指标就不同——你怎么知道这个模型在所有阈值下整体表现好不好?

ROC 曲线就是为此而生的:它直观地显示模型在所有可能阈值下的性能。(“接收器操作特性”这个长名字来自二战雷达检测。)


二、ROC 曲线怎么画?

每个可能的阈值(实践中按选定间隔取),计算两个值:

然后把 TPR 作纵轴、FPR 作横轴,描点连成曲线——这就是 ROC。

两种极端模型的 ROC:

模型ROC 形状AUC
完美模型从原点一路到 (0,1) 再横到 (1,1)1.0
随机猜测从 (0,0) 到 (1,1) 的对角线0.5

三、AUC:一个数字代表”排对序”的概率

AUC(ROC 曲线下面积) 的含义非常直观:

如果随机选一个正例和一个负例,AUC = 模型把正例排在负例之上的概率——而且不受阈值位置影响

举例(垃圾邮件分类器):

注意:每封邮件实际归为哪一类,仍取决于你选的阈值;AUC 只衡量”排序能力”。


四、用 ROC 和 AUC 选择模型与阈值

4.1 比较两个模型:AUC 越大越好

AUC 是比较两个不同模型性能的有效指标(前提:数据集大致平衡)。曲线下面积大的模型通常更好。

4.2 选择阈值:看 ROC 上离 (0,1) 最近的点

ROC 曲线上最接近 (0,1) 的点,代表该模型”效果最佳”的阈值范围。但具体选哪个点,取决于你的业务代价。看图中 A、B、C 三个点:

业务场景适合的阈值
误报(FP)代价很高点 A:FPR 低,即使 TPR 也低
漏报(FN)代价很高点 C:最大化 TPR(逮住更多正例),接受更多 FP
两者代价相当点 B:TPR 与 FPR 的最佳平衡

经典场景:宁放垃圾邮件进收件箱,也不能把重要商务邮件丢进垃圾文件夹 → 优先压低 FPR,选更接近点 A 的阈值。


五、特殊情况:不均衡数据改用 PRC(可选进阶)

PRC 的画法:y 轴画精确率,x 轴画所有阈值下的召回率


六、练习:一眼判断模型好坏

  1. 哪个模型性能最好?AUC 最高的那个。
  2. 哪个模型效果不如随机猜测?AUC < 0.5 的那个(甚至可以把预测结果取反,立刻优于随机)。
  3. “允许部分垃圾邮件进收件箱,但绝不把重要商务邮件当垃圾” → 选 ROC 上 FP 低的点(如点 A),牺牲部分 TPR。

七、关键术语速查


总结

核心要点关键结论
ROC 是什么所有阈值下 TPR vs FPR 的曲线
AUC = 1.0完美排序:正例总是排在负例前
AUC = 0.5随机猜测,和抛硬币一样
选模型数据集平衡时,AUC 越大越好
选阈值看 ROC 上离 (0,1) 最近的点;具体位置看业务代价
不均衡数据用 PRC 代替 ROC/AUC 更可靠

一句话:ROC 把”所有阈值下的模型表现”画成一条曲线,AUC 用一个数字告诉你”它有多擅长把正例排在负例前面”——选模型看 AUC,选阈值看曲线上的点,数据不均衡就换 PRC。


分享这篇文章到:

上一篇文章
机器学习速成·分类(4/4):预测偏差与多类别分类
下一篇文章
机器学习速成·分类(2/4):准确率、召回率、精确率与 F1