← 返回题目列表

P-R 曲线和 ROC 曲线有什么区别?什么时候用哪个?

高频 中等 第 12 / 25 题 更新于 2026/08/02
模型评估PR曲线ROC类别不平衡

简化版

两者都是遍历阈值画出的评估曲线。ROC 曲线 的轴是 FPR(横)和 TPR(纵)P-R 曲线 的轴是 召回率 Recall(横)和精确率 Precision(纵)。关键区别在对类别不平衡的敏感度:ROC 的两个轴分别在正、负样本内部归一化,对类别比例不敏感、比较稳定;而 P-R 曲线的精确率分母含 FP,直接受负样本数量影响,所以在类别极度不平衡(正类很少)时,P-R 曲线更敏感、更能暴露模型的真实问题。经验:关注正类、正负样本悬殊(如欺诈、疾病、检索)用 P-R 曲线;类别较均衡或要综合比较模型用 ROC/AUC。

详细版

两条曲线对比:

ROC 曲线P-R 曲线
横轴FPR = FP/(FP+TN)Recall = TP/(TP+FN)
纵轴TPR = TP/(TP+FN)Precision = TP/(TP+FP)
理想位置左上角右上角
面积指标AUC(AUROC)AP / AUPRC
对不平衡不敏感、稳定敏感、随正类比例变
随机基线对角线(0.5)水平线 = 正类比例

关键差异根源:

  • ROC 的 FPR 分母是负样本数,TPR 分母是正样本数——正负分开归一化,类别比例变了曲线基本不变
  • P-R 的 Precision 分母是 TP+FP——负样本一多,FP 容易变大,Precision 下降明显,曲线随不平衡剧烈变化

完整版教学

一、两条曲线的定义

ROC 和 P-R 曲线都是遍历所有分类阈值、把每个阈值下的一对指标连成的曲线,用来评价模型在各种权衡下的整体表现。区别只在用哪两个指标做轴

  • ROC 曲线:横轴 FPR = FP/(FP+TN)(误报率),纵轴 TPR = TP/(TP+FN)(召回率)。越靠左上角越好。
  • P-R 曲线:横轴 Recall = TP/(TP+FN)(召回率),纵轴 Precision = TP/(TP+FP)(精确率)。越靠右上角越好。

对应的面积指标:ROC 是 AUC(AUROC),P-R 是 AP(平均精确率)/ AUPRC

ROC 的 FPR 与 TPR 分别在真实负类、正类内部归一化;PR 的 Precision 同时受 TP 与 FP 影响。若保持类条件分数分布不变、只改变类别先验,理论 ROC 不变而 PR 会变化;现实换人群也可能改变条件分布,因此不能说 ROC 永远稳定。

AP 常按 Recall 增量对 Precision 加权求和,AUPRC 也可能指梯形积分。不同库的插值、并列分数和正类定义不同,面积数字不能脱离实现直接比较。

二、核心区别:对类别不平衡的敏感度

这是本题的关键,也是选择两者的依据。区别的根源在于三个指标的分母各含什么

  • TPR 分母 = TP+FN = 正样本总数(只和正样本有关)。
  • FPR 分母 = FP+TN = 负样本总数(只和负样本有关)。
  • Precision 分母 = TP+FP(含 FP,和负样本数量强相关)。

看出关键了:ROC 的两个轴(TPR、FPR)分别在正样本和负样本内部归一化,所以改变正负样本的比例,ROC 曲线基本不变——它对类别不平衡不敏感、很稳定

P-R 的 Precision 分母含 FP:当负样本极多(正类很少)时,即使模型误报率(FPR)很低,绝对的 FP 数量也可能很大,导致 Precision 显著下降。所以类别越不平衡,P-R 曲线变化越剧烈、越能反映模型在「正类稀少」下的真实困境

三、举例:为什么不平衡时 ROC 会「骗人」

假设做欺诈检测:10000 笔交易里只有 100 笔欺诈(1% 正类),负样本 9900 笔。某模型抓到 90 个欺诈(TP=90,FN=10),但误报了 900 笔正常交易(FP=900):

  • FPR = 900/9900 ≈ 0.09——看着很小!ROC 上这个点靠近左上角,这个 ROC 工作点在横轴上仍可能显得不大;单点不能推出 AUC
  • Precision = 90/(90+900) ≈ 0.09——只有 9%!意味着模型报警的 990 笔里只有 90 笔真欺诈,90% 是误报,实际几乎没法用。

同一个模型,ROC 说「不错」,P-R 说「很差」。因为负样本基数大(9900),900 个 FP 摊到 FPR 里显得微不足道,但摊到 Precision 里就很致命。这就是极端不平衡下 ROC 过于乐观、P-R 更如实的原因。

四、随机基线也不同

  • ROC 的随机基线是固定的对角线(AUC=0.5),和类别比例无关。
  • P-R 的随机基线是一条水平线,高度 = 正类比例(正类 1% 时基线就在 0.01)。所以看 P-R 曲线要对照这个随类别变化的基线判断模型好坏。

随机排序的总体期望 ROC 基线是对角线,AUROC=0.5;PR 的期望基线与正类率 π 相关。有限样本经验曲线会围绕基线波动,样本权重也会改变有效先验。

正类率 π随机 PR 基线
50%0.50
10%0.10
1%0.01

AP 跨数据集下降,可能是排序变差,也可能只是先验不同;比较前要固定或报告评估分布。

五、什么时候用哪个

用 P-R 曲线:
  - 类别极度不平衡、正类稀少(欺诈、疾病筛查、异常检测、信息检索)
  - 主要关注「正类」的查准查全,不太在乎大量负类
用 ROC / AUC:
  - 类别相对均衡
  - 想要对类别比例稳健、可跨数据集比较的指标
  - 关注整体排序能力(正负样本都重要)
  • 正类稀少且是关注重点P-R 曲线(更敏感、更能反映真实性能)。
  • 要一个稳定、与比例无关的综合排序指标ROC/AUC
  • 实践中两者常一起看:ROC 看整体排序,P-R 看不平衡下正类的实际可用性。

六、常见追问

  • P-R 和 ROC 最本质区别? ROC 对类别不平衡不敏感(TPR/FPR 各自归一化);P-R 对不平衡敏感(Precision 分母含 FP,受负样本数影响)。
  • 不平衡为什么用 P-R? 负样本多时 ROC/AUC 偏乐观,P-R 能暴露 Precision 低的真实问题。
  • P-R 的随机基线是多少? 等于正类比例(不是 0.5)。
  • AP 是什么? 按召回率增量对 Precision 加权的平均精确率;它与梯形插值 AUPRC 可能不同,不平衡场景常用它替代 AUC。
  • 两条曲线会矛盾吗? 会——不平衡时 ROC 好看但 P-R 差,以关注正类的 P-R 为准。

七、用同一工作点比较两条曲线的观察角度

100 个正例、9900 个负例中,若 TP=90,FN=10,FP=900,TN=9000,则 TPR=0.90FPR≈0.091Precision≈0.091。ROC 点 (0.091,0.90) 表明在约 9.1% 的负类误报率下抓到 90% 正类;PR 点 (0.90,0.091) 直接表明报警中仅约 9.1% 为真。这个单一工作点不能推出 AUC 大小,AUC 必须由全部阈值排序计算。

情况AUROCAP/AUPRC 的变化
只改变评估集正类占比,类内分数分布不变理论上保持随 prevalence 改变
类内分数分布也发生漂移可能改变也会改变
只关心低 FPR 区域全局 AUC可能稀释重点PR仍聚焦正类但也需看工作区
阈值从高到低 → 同时得到 (FPR,TPR) 与 (Recall,Precision)
                → ROC 看类内率
                → PR 看预测正例的纯度

AP 常按召回率每次增加时的 Precision 加权求和,AUPRC 可能采用梯形积分;不同库和插值约定下二者不必完全相同。跨数据集比较时还要说明先验比例和分布是否一致。

易错点:ROC 对 prevalence 不直接敏感,不代表它对所有数据漂移稳定,更不代表能忽略线上绝对 FP 数。

八、常见误区与追问

  • 误区:一个 ROC 工作点很好就能断言 AUC 很高。 AUC取决于全阈值排序,单点不足以确定曲线面积。
  • 误区:AP 与任意算法算出的梯形 AUPRC 永远相等。 插值和积分定义不同可能产生差异。
  • 追问:PR 的随机基线是什么? 在独立随机排序的期望下与正类 prevalence 对应。
  • 追问:ROC 为什么不能自动跨数据集公平比较? 类别条件分数分布、标注和采样机制变化都会改变含义。
  • 追问:业务只允许 FPR≤0.1% 怎么办? 比较该局部区域、partial AUC 或约束下的 TPR,而非只看全局 AUC。

九、加强记忆

ROC 和 P-R 都是遍历阈值的评估曲线,区别在对不平衡的敏感度ROC(横 FPR、纵 TPR,靠左上,面积 AUC)——TPR/FPR 分别在正/负样本内归一化,对类别比例不敏感、稳定P-R(横 Recall、纵 Precision,靠右上,面积 AP)——Precision 分母含 FP、受负样本数强影响,对不平衡敏感。所以极端不平衡(正类稀少)时 ROC 偏乐观、会「骗人」(欺诈例:FPR 0.09 好看,但 Precision 0.09 说明 90% 误报),P-R 更如实。随机基线:ROC 是对角线 0.5、P-R 是正类比例的水平线。选择:正类稀少且关注正类用 P-R,类别较均衡或需整体排序概览可看 ROC/AUC,实践常两者一起看。