AUC、F1、召回率怎么选
文章目录
- AUC、F1、召回率怎么选
-
- [1. 先分清:它们不是同一层问题](#1. 先分清:它们不是同一层问题)
- [2. 结论先行](#2. 结论先行)
- [3. 先看混淆矩阵:漏检和误报分别是什么](#3. 先看混淆矩阵:漏检和误报分别是什么)
- [4. 用业务场景看该选谁](#4. 用业务场景看该选谁)
-
- [4.1 漏检代价高:优先召回率](#4.1 漏检代价高:优先召回率)
- [4.2 误报代价高:优先精确率,必要时用 F1](#4.2 误报代价高:优先精确率,必要时用 F1)
- [4.3 还在比模型能力:优先 AUC](#4.3 还在比模型能力:优先 AUC)
- [5. 一个贯穿例子:风控审核](#5. 一个贯穿例子:风控审核)
- [6. 一个可执行的选型流程](#6. 一个可执行的选型流程)
- [7. 常见误区](#7. 常见误区)
-
- [7.1 只看准确率](#7.1 只看准确率)
- [7.2 拿 AUC 直接当上线验收标准](#7.2 拿 AUC 直接当上线验收标准)
- [7.3 只优化 F1,不看业务代价](#7.3 只优化 F1,不看业务代价)
- [7.4 指标定义和正类定义不一致](#7.4 指标定义和正类定义不一致)
- [8. 快速对照表](#8. 快速对照表)
- [9. 关键术语速查](#9. 关键术语速查)
- [10. 小结](#10. 小结)
- [11. 后续内容](#11. 后续内容)
摘要:做分类项目时,很多人会同时看到召回率、精确率、F1、AUC,却不知道该拿哪一个做主指标。本文不展开成公式手册,而是从业务代价和决策目标出发,讲清楚这三个指标分别回答什么问题、适合什么场景、容易踩哪些坑。适合做过分类任务、准备做模型选型或阈值调整的工程师。读完应能判断:当前项目更该盯召回率、F1,还是 AUC。
说明:本文侧重分类指标的选型判断。若需要混淆矩阵和 ROC 的完整推导,可另行查阅更系统的原理篇。
1. 先分清:它们不是同一层问题
很多人把召回率、F1、AUC 当成三个可以互相替换的分数。这样选型很容易跑偏。
更准确的理解是:它们回答的问题不同。
| 指标 | 英文 | 主要回答的问题 |
|---|---|---|
| 召回率 | Recall | 真实正类有没有被漏掉 |
| 精确率 | Precision | 模型判为正的结果里,有多少是对的 |
| F1 | F1-score | 精确率和召回率能不能兼顾 |
| AUC | Area Under ROC Curve | 模型能不能把正类排在负类前面 |
换句话说:
- 召回率关心漏检
- 精确率关心误报
- F1 是两者的折中
- AUC 更偏模型排序能力,不完全等于某个固定阈值下的业务结果

图1. 选型第一步,不是算谁分数更高,而是先确认你当前最关心哪类错误。
2. 结论先行
如果只想先拿结论,可以按这个顺序判断:
| 你的目标 | 更优先看什么 |
|---|---|
| 漏检代价很高 | 召回率 |
| 误报代价很高 | 精确率 |
| 两边都不能太差,需要一个综合分 | F1 |
| 还在比模型整体区分能力,阈值未定 | AUC |
| 已经定了阈值,准备上线验收 | 固定阈值下的 Precision / Recall / F1 |
再压缩成三条:
- 先问漏检和误报谁更贵。
- 如果需要一个综合分数,再看 F1。
- 如果还在比模型排序能力,再看 AUC。
不要一上来就问哪个指标更高级。指标没有高低,只有是否匹配目标。
3. 先看混淆矩阵:漏检和误报分别是什么
二分类最常见的四个结果是:
| 符号 | 含义 | 业务理解 |
|---|---|---|
| TP | 真正例 | 正类,判断对了 |
| FP | 假正例 | 负类,被误报成正类 |
| FN | 假反例 | 正类,被漏掉了 |
| TN | 真反例 | 负类,判断对了 |
对应关系很直接:
- 召回率看的是 FN,也就是漏检
- 精确率看的是 FP,也就是误报
- F1 同时受两者影响
公式可以简写为:
Recall = T P T P + F N \text{Recall} = \frac{TP}{TP+FN} Recall=TP+FNTP
Precision = T P T P + F P \text{Precision} = \frac{TP}{TP+FP} Precision=TP+FPTP
F 1 = 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l F1 = \frac{2 \cdot Precision \cdot Recall}{Precision + Recall} F1=Precision+Recall2⋅Precision⋅Recall
AUC 则不是某一个阈值下的单点结果,而是在多个阈值下观察 TPR 和 FPR 后得到的整体排序能力指标。

图2. 召回率盯住漏检 FN,精确率盯住误报 FP。F1 是两者的折中。
4. 用业务场景看该选谁
下面用几个常见场景说明。你会发现,真正决定指标的,通常不是算法偏好,而是错误代价。
4.1 漏检代价高:优先召回率
典型场景:
- 疾病筛查
- 欺诈识别
- 故障预警
- 高风险内容拦截
这类场景里,漏掉一个真实正类,往往比多报几个可疑对象更严重。
比如疾病筛查里,漏诊意味着病人没有进入后续检查;欺诈识别里,漏掉一笔真实欺诈,可能直接造成资金损失。这时召回率通常要优先保证。
注意:提高召回率,往往伴随精确率下降。也就是说,你会多拦一些其实没问题的样本。这是在用误报换漏检。
4.2 误报代价高:优先精确率,必要时用 F1
典型场景:
- 搜索结果点击率相关评估
- 推荐列表里的正反馈质量
- 客服工单自动判责
- 高打扰误封场景
如果模型一报正类就会触发强动作,比如封号、扣款、直接下架,那误报成本会很高。这时精确率更重要。
如果产品既不能漏太多,也不能误报太多,F1 会更实用。它不是最优业务指标,但适合作为综合验收分数。
4.3 还在比模型能力:优先 AUC
典型场景:
- 多个模型横向对比
- 特征方案还没定阈值
- 想看模型整体把正负类排开的能力
AUC 的优点是:
- 不依赖某一个固定阈值
- 更适合回答谁更会排序
但它也有局限:
- 线上最终还是要定阈值
- AUC 高,不代表某个业务阈值下的召回或精确一定更好
- 类别极不平衡时,也要结合 PR 相关指标一起看
所以,AUC 更适合模型选型阶段,不一定适合作为最终上线验收的唯一指标。

图3. 场景不同,主指标就不同。先定业务代价,再定指标。
5. 一个贯穿例子:风控审核
假设你在做一个交易风控模型,目标是识别可疑交易。
业务约束大致是:
- 漏掉真实欺诈的代价很高;
- 但误拦正常交易,会直接影响用户体验和成交;
- 当前还在比较两个模型,阈值尚未最终确定。
这种情况下,指标可以分阶段使用:
阶段一:模型对比
先看 AUC。
原因是你还没定最终阈值,先要知道哪个模型更有区分能力。
阶段二:阈值选择
再看召回率和精确率的折中。
如果业务要求至少找回 90% 的欺诈交易,那就先保证召回率,再在这个约束下尽量提高精确率。
阶段三:上线验收
用固定阈值下的召回率、精确率,必要时再报 F1。
原因是上线后,业务真正感受到的是某个阈值下的结果,而不是整条 ROC 曲线。
这个例子说明一件事:
同一项目里,不同阶段可以用不同主指标,不必从头到尾只盯一个数。
6. 一个可执行的选型流程
如果你不知道从哪开始,可以按下面四步走。
第一步:先算错误代价
问两个问题:
- 漏掉一个正类,业务损失是什么?
- 误报一个负类,业务损失是什么?
如果漏检更贵,主指标偏向召回率;如果误报更贵,主指标偏向精确率。
第二步:确认是否需要单一综合分
如果产品、算法、运营都要一个容易对比的分数,F1 往往更方便。
但 F1 默认把精确率和召回率同等重要。如果你的业务明显不是对等关系,不要只看 F1。
第三步:确认当前是不是还在比模型
如果阈值还没定,先看 AUC;如果阈值已经定了,就看该阈值下的 Precision、Recall、F1。
第四步:把指标和阈值一起定下来
指标不是孤立存在的。最终上线时,你通常要同时交付:
- 主指标
- 辅助指标
- 阈值
- 各类错误的业务解释

图4. 先定代价,再定是否需要综合分,再判断是否看排序能力,最后落到阈值。
7. 常见误区
7.1 只看准确率
在类别不平衡时,准确率很容易虚高。
例如正类只有 1%,模型全判负类,准确率也能到 99%,但对业务几乎没有价值。分类项目里,准确率最多当参考,不宜单独做主指标。
7.2 拿 AUC 直接当上线验收标准
AUC 适合比较模型排序能力,不直接等于某个业务动作下的结果。
上线时,用户和业务看到的是固定阈值后的拦截、召回、误报,而不是 AUC 这个面积值。
7.3 只优化 F1,不看业务代价
F1 提高了,不代表业务更划算。
如果漏检代价是误报的十倍,你仍然应该优先约束召回率,而不是盲目追求 F1 最大。
7.4 指标定义和正类定义不一致
比较模型前,先确认大家说的正类是不是同一件事。
比如风控里,正类到底是欺诈交易,还是人工复核后的高风险交易,定义不同,指标就没有可比性。

图5. 指标用错,通常不是公式记错,而是业务目标没对齐。
8. 快速对照表
| 场景 | 建议主指标 | 建议辅助指标 | 原因 |
|---|---|---|---|
| 疾病筛查、欺诈召回 | Recall | Precision | 先保证少漏 |
| 内容推荐、搜索质量 | Precision 或 F1 | Recall | 先保证判正更准 |
| 模型横向对比 | AUC | PR-AUC / F1 | 先看排序能力 |
| 上线验收 | 固定阈值下的 P/R/F1 | 业务转化或损失 | 看真实动作结果 |
| 类别极不平衡 | Recall / Precision / PR 相关指标 | Accuracy | 准确率容易失真 |
9. 关键术语速查
| 术语 | 含义 |
|---|---|
| 召回率 Recall | 真实正类中被正确找出的比例 |
| 精确率 Precision | 预测为正的样本中真正为正的比例 |
| F1 | 精确率与召回率的调和平均 |
| AUC | ROC 曲线下面积,衡量正负类排序能力 |
| 阈值 Threshold | 把模型分数转成正负判断的分界点 |
| 漏检 FN | 真实为正,但被判成负 |
| 误报 FP | 真实为负,但被判成正 |
10. 小结
AUC、F1、召回率并不是谁更高级的问题,而是谁更匹配当前目标的问题。
可以记住这几条:
- 漏检代价高,先看召回率;
- 误报代价高,先看精确率;
- 两边都要兼顾,再看 F1;
- 还在比较模型排序能力,再看 AUC;
- 上线验收时,一定要落到固定阈值下的业务结果。
如果一个项目里你说不清楚主指标是什么,通常不是模型不够复杂,而是业务目标还没定义清楚。
11. 后续内容
这篇解决的是分类指标怎么选。后面继续写相关主题,会再展开:
- 特征工程为什么经常比换模型更重要
- 类别不平衡时,评估指标和采样策略怎么配合
如果这篇对你有帮助,欢迎点赞、收藏,也欢迎关注后续更新。