准确率(Precision)和召回率(Recall)
准确率(Precision)
-
定义:准确率是指在模型预测为正的样本中,真正为正的样本所占的比例。它关注的是模型预测的准确性。
-
计算公式:
Precision = TP TP + FP \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} Precision=TP+FPTP
其中:- TP(True Positive):真正例,模型正确预测为正的样本数。
- FP(False Positive):假正例,模型错误预测为正的样本数。
-
应用场景:当需要减少误报时,准确率更重要。例如,在垃圾邮件检测中,高准确率意味着减少正常邮件被误判为垃圾邮件的情况。
召回率(Recall)
-
定义:召回率是指在所有实际为正的样本中,模型正确预测为正的样本所占的比例。它关注的是模型的覆盖能力。
-
计算公式:
Recall = TP TP + FN \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} Recall=TP+FNTP
其中:- TP(True Positive):真正例,模型正确预测为正的样本数。
- FN(False Negative):假反例,模型错误预测为负的样本数。
-
应用场景:当需要减少漏报时,召回率更重要。例如,在疾病诊断中,高召回率意味着减少患者被漏诊的情况。
如何区分
-
关注点不同:
- 准确率关注的是模型预测为正的样本中有多少是真正的正样本。
- 召回率关注的是所有实际为正的样本中有多少被模型正确预测出来。
-
⭐应用场景不同:
- 准确率适用于需要减少误报的场景。
- 召回率适用于需要减少漏报的场景。
-
权衡关系:
- 提高准确率可能会降低召回率,反之亦然。通常需要在两者之间找到一个平衡点。
示例
假设有一个目标检测模型在100张图片上进行检测,其中实际有30个正样本(目标存在),70个负样本(目标不存在)。模型的预测结果如下:
-
TP = 20(检测正确到的目标)
-
FP = 10(误检为目标的非目标)
-
FN = 10(漏检的目标)
-
TN = 60(正确检测为非目标的非目标)
-
准确率:
Precision = 20 20 + 10 = 20 30 ≈ 0.6667 \text{Precision} = \frac{20}{20 + 10} = \frac{20}{30} \approx 0.6667 Precision=20+1020=3020≈0.6667
准确率为66.67%,表示模型预测为正的样本中有66.67%是真正的正样本。 -
召回率:
Recall = 20 20 + 10 = 20 30 ≈ 0.6667 \text{Recall} = \frac{20}{20 + 10} = \frac{20}{30} \approx 0.6667 Recall=20+1020=3020≈0.6667
召回率为66.67%,表示所有实际为正的样本中有66.67%被模型正确预测出来通过。
这个示例可以看出,准确率和召回率虽然计算方式不同,但在某些情况下可能会有相似的数值。实际应用中,需要根据具体需求来权衡两者的重要性。