跳到主内容
快讯直播
AI智模界
AI 词典

精确率、召回率、F1:分类任务最容易混淆的三个指标

一句话定义

精确率(Precision)回答"你说是的里面有多少是对的",召回率(Recall)回答"真正是的里面你找出来多少",F1 是两者的调和平均,用一个数字概括这对互相拉扯的指标。

用一组数字看明白

1000 封邮件里,实际有 100 封是垃圾邮件。模型标出了 80 封,其中 60 封确实是垃圾:剩下 20 封是误伤的正常邮件,同时有 40 封垃圾邮件被放过了。

  • 精确率 = 60 / 80 = 75%。分母是"模型说是的",衡量判得准不准。
  • 召回率 = 60 / 100 = 60%。分母是"实际是的",衡量漏没漏。
  • F1 = 2 × 0.75 × 0.60 / (0.75 + 0.60) ≈ 0.67。两边都高,F1 才高;一边高一边低,F1 会被拉下来。

打个比方

医院筛查一种病,1000 人里真有 10 人患病。把可疑的人全叫来复查,召回率高,但会有一堆健康人被误报;只挑最有把握的 2 个人复查,精确率高,却漏掉 8 个病人。你不可能同时把两个都拉满。

和准确率(Accuracy)的区别

准确率看整体答对了多少。上面 1000 封邮件,如果模型全部判成"不是垃圾",准确率仍有 90%,但一封垃圾邮件都没抓住,召回率为 0。类别极不平衡时,准确率会骗人。

指标关注的问题分母提高它的代价
精确率说是的里面有多少是真的模型判为正的样本判得更保守,可能漏更多
召回率真正是的里面找出多少实际为正的样本判得更大胆,可能误报更多
F1两边是否均衡任一方偏低都会被拉下来

对实际工作的意义

先问一句:哪种错误更贵?垃圾邮件过滤误杀重要邮件代价高,优先保精确率;疾病筛查、风控预警漏掉一个代价高,优先保召回率。两边都要兼顾、又需要一个数字汇报时,才用 F1。

多数模型可以通过调分类阈值(Threshold)在两者之间移动:阈值调低,召回率上升、精确率下降,反之亦然。所以别只盯一个数字,把精确率、召回率和阈值放在一起看。至于多分类下各指标如何平均、边界情况怎么算,以所用框架的官方文档为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。