查准率与查全率

查准率 (Precision) 和 **查全率 (Recall)**。

这两个指标主要用于评估 分类模型 的性能,尤其是在处理 类别不平衡 的数据集时,它们比单纯的“准确率 (Accuracy)”要重要得多。


一、为什么需要查准率和查全率?(准确率的陷阱)

在解释它们之前,我们先看看只用“准确率”有什么问题。

准确率 (Accuracy) = (预测正确的样本数) / (总样本数)

假设有一个癌症预测任务,数据集中有 1000 个人,其中:

  • 990 人是健康的 (负类 Negative)
  • 10 人是癌症患者 (正类 Positive)

现在我们有一个很“懒”的模型,它不管输入是什么,一律预测为“健康”。它的预测结果是:

  • 正确预测了 990 个健康的人。
  • 错误地将 10 个癌症患者也预测为“健康”。

这个模型的准确率是多少?
Accuracy = 990 / 1000 = 99%

看!准确率高达 99%,但这个模型 毫无用处,因为它一个真正的癌症患者都找不出来。

这个例子说明,在类别不平衡(一个类的样本远多于另一个类)的情况下,准确率会产生严重的误导。这时,我们就需要查准率和查全率来更精细地评估模型。


二、基础:混淆矩阵 (Confusion Matrix)

要理解查准率和查全率,必须先理解混淆矩阵。混淆矩阵是一个表格,它展示了模型预测结果与真实标签之间的对比。

我们还是用上面的例子,把“癌症患者”定义为 **正类 (Positive)**,“健康人”定义为 **负类 (Negative)**。

预测为正类 (癌症) 预测为负类 (健康)
实际为正类 (癌症) TP (True Positive)
真阳性
FN (False Negative)
假阴性
实际为负类 (健康) FP (False Positive)
假阳性
TN (True Negative)
真阴性
  • TP (True Positive)实的类,被模型正确地预测为类。(本来是癌症,预测也是癌症)
  • FN (False Negative)类,即真实是类,但被模型错误地预测为类。(本来是癌症,漏报了,预测为健康)
  • FP (False Positive)类,即真实是类,但被模型错误地预测为类。(本来是健康,误报了,预测为癌症)
  • TN (True Negative)实的类,被模型正确地预测为类。(本来是健康,预测也是健康)

三、查准-率 (Precision)

查准率,又称 精确率。它回答的问题是:
“在所有被模型预测为‘正类’的样本中,有多少是真正的‘正类’?”

公式:
Precision = TP / (TP + FP)

  • 分母 (TP + FP):所有被模型预测为正类的样本总数(即模型“认为”是癌症的人)。
  • **分子 (TP)**:其中预测对的部分。

直观理解:
查准率衡量的是你预测的“准不准”。如果你的模型预测了10个人是癌症患者 (TP+FP=10),但其中只有 8 个是真的癌症患者 (TP=8),那么查准率就是 80%。它反映了模型避免误报 (FP) 的能力

一个比喻:
你用渔网撒网捕鱼。“查准率”就好比:在你捞上来的所有东西(鱼、虾、水草、靴子)里,鱼的比例有多高? 查准率高,意味着你捞上来的大部分都是鱼,没捞太多垃圾。

何时看重查准率?
当你希望预测为正类的结果尽可能准确时。因为“误报”的代价很高。

  • 垃圾邮件过滤:你不想把重要的邮件错误地标记为垃圾邮件 (FP),宁愿放过一些垃圾邮件 (FN)。
  • 股票推荐系统:推荐用户购买的股票必须是大概率上涨的,如果推荐错了 (FP),用户会亏钱。

四、查全率 (Recall)

查全率,又称 召回率。它回答的问题是:
“在所有真实为‘正类’的样本中,有多少被模型成功地找出来了?”

公式:
Recall = TP / (TP + FN)

  • 分母 (TP + FN):数据集中所有真实为正类的样本总数(即总共有多少癌症患者)。
  • **分子 (TP)**:其中被你找出来的部分。

直观理解:
查全率衡量的是你找得“全不全”。如果总共有 10 个癌症患者 (TP+FN=10),你的模型找出了 7 个 (TP=7),那么查全率就是 70%。它反映了模型避免漏报 (FN) 的能力

一个比喻:
还是用捕鱼的比喻。“查全率”就好比:池塘里总共有 100 条鱼,你这一网捞上来了多少条? 查全率高,意味着你把大部分鱼都捞起来了,没漏掉多少。

何时看重查全率?
当你希望尽可能地找出所有正类样本时。因为“漏报”的代价很高。

  • 癌症诊断:你绝不想漏掉任何一个真正的癌症患者 (FN),宁愿误诊一些健康人 (FP) 让他们再去做进一步检查。
  • 金融欺诈检测:宁愿错杀一千(将正常交易误判为欺诈),也不可放过一个(漏掉真正的欺诈交易)。

五、查准率和查全率的权衡 (Trade-off)

这两个指标通常是相互制约的。

想象一下模型的决策**门槛 (Threshold)**:

  • 提高门槛(变得更“严格”):模型只有在非常有把握时才预测为“正类”。
    • 结果:FP 会减少(更少误报),所以 查准率 (Precision) 会上升
    • 代价:FN 会增加(更多漏报),因为一些不太明显的正类被放过了,所以 查全率 (Recall) 会下降
  • 降低门槛(变得更“宽松”):模型稍微有点怀疑就预测为“正类”。
    • 结果:FN 会减少(更少漏报),所以 查全率 (Recall) 会上升
    • 代价:FP 会增加(更多误报),因为很多模棱两可的负类被误判了,所以 查准-率 (Precision) 会下降

这种权衡关系可以用 P-R 曲线 (Precision-Recall Curve) 来可视化。


六、F1 分数 (F1-Score):一个综合指标

既然两者相互制约,我们有时需要一个能同时兼顾两者的综合指标。F1 分数 就是查准率和查全率的 调和平均数

公式:
$$F1 = 2 * (P * R) / (P + R)$$

  • 特点:F1 分数会同时考虑 Precision 和 Recall。只有当两者都比较高时,F1 分数才会高。如果其中一个特别低,F1 分数也会被拉得很低。
  • 用途:当你想在查准率和查全率之间寻求一个平衡时,F1 分数是一个很好的参考指标。

总结

指标 关注点 公式 通俗解释 适用场景
查准率(Precision) 预测的准确性 TP / (TP + FP) 在你挑出来的瓜里,保熟的比例有多高? 误报代价高(垃圾邮件、股票推荐)
查全率(Recall) 查找的全面性 TP / (TP + FN) 瓜田里所有熟的瓜,你挑出来了多少? 漏报代价高(疾病诊断、金融反欺诈)
F1 分数(F1-Score) 两者的平衡 调和平均数 保熟率和检出率的综合得分 需要平衡二者时

查准率与查全率
http://wang-jiahao.github.io/posts/985c0fb7.html
作者
Jiahao Wang
发布于
2025年9月21日
更新于
2025年9月21日
许可协议