什么是 精确率与召回率(Precision and Recall)?

精确率与召回率(Precision and Recall)是互补的分类指标:精确率表示预测正例中真正例的比例,召回率表示真实正例中被分类器检出的比例。

快速了解

规范文档官方规范

工作原理

把零分母视为证据缺失

模型没有预测任何正例时,精确率没有定义;评测样本中没有真实正例时,召回率没有定义。返回零或一可以是显式聚合策略,却不能冒充观测性能。因此当前 scikit-learn API会暴露 zero_division 策略和每类 Support,评测报告也应保留这两个信息。

按成本与容量选择阈值

降低分数阈值通常会预测更多正例,提高召回率,同时纳入更多假正例并可能降低精确率;提高阈值通常相反。应先检查完整 Precision-Recall Curve,再依据漏报成本、误报成本、复核容量、延迟和所需覆盖率选择操作点。最终测试集不能反复用于调阈值。

保留基础发生率与聚合口径

精确率依赖部署人群:即使条件错误率不变,正类基础发生率变化也会显著改变精确率。多分类或多标签任务应先报告逐类结果,再声明采用 Micro、Macro、Weighted 还是 Samples 平均。Davis 与 Goadrich证明 ROC 与 PR 曲线存在对应关系,但几何性质不同,PR 空间通常不能在两个点之间直接线性插值。

主要特点

  • 精确率以预测正例为条件,直接受到假正例影响
  • 召回率以真实正例为条件,直接受到假负例影响
  • 两者都会随正类定义与决策阈值变化
  • 即使条件错误率不变,精确率仍会随基础发生率变化
  • 分母为零时必须声明未定义值处理策略
  • 多分类结果依赖明确的类别集合与平均方式

常见用途

  1. 用精确率控制内容审核或欺诈告警中的错误指控
  2. 用召回率减少安全、疾病或事故检测中的漏报
  3. 在固定人工复核预算下选择分类器阈值
  4. 比较类别不均衡多分类模型的逐类失败
  5. 基础发生率或业务策略变化后监控模型行为

示例

loading...
Loading code...

常见问题

精确率和召回率有什么区别?

精确率询问预测正例中有多少正确,分母是 `TP+FP`;召回率询问真实正例中找到了多少,分母是 `TP+FN`。前者揭示误报负担,后者揭示漏报负担,二者不能仅靠名称互相替代。

什么时候应该优先精确率?

正向预测会触发高成本或高伤害动作时应优先精确率,例如指控用户、拦截正常交易或向分析师发送告警。同时还要约束最低召回率,避免模型通过几乎不报正例获得看似很高的精确率。

什么时候应该优先召回率?

漏掉正例造成的伤害更大时应优先召回率,例如第一阶段安全筛查或事故检测。但仍需约束假正例和运营负担;把所有样本都判为正类得到的满召回率,通常不是可接受策略。

为什么召回率稳定时,线上精确率仍可能变化?

精确率依赖服务人群中的正类基础发生率。事件变得更稀有后,大量真实负例会为假正例创造更多机会,因此即使条件敏感度与特异度不变,正预测值也可能下降。

多分类精确率和召回率应该怎样平均?

先报告逐类数值与支持度。Macro 让每类权重相同,Micro 先聚合计数再计算,Weighted 按真实类别支持度加权,Samples 用于多标签样本。选择哪种方式属于指标定义,必须随结果一起发布。

相关术语

相关文章