Precision 和 Recall 是常考的知识点,就其区别做一个详细总结

1. Precision

中文翻译 “精确率”,“查准率”。 “查准率”这个名字更能反应其特性,就是该指标关注准确性。

计算公式如下:

这里TP,FP的概念来自统计学中的混淆矩阵,TP指 “预测为正(Positive), 预测正确(True)” (可以这里记忆:第一位表示该预测是否正确,第二位表示该预测结果为正还是负) , 于是,我们可以这样理解 Precision : 所有预测为正例的案例中,预测准确的比例

Precision适用什么样的场景呢?

适用于需要尽可能地把所需的类别检测准确,而不在乎这些类别是否都被检测出来 , 宁可放过一些坏人,也不冤枉一个好人(识别坏人(正例)的准确性很高,但不一定能识别所有坏人)

具体来说,银行人脸识别系统,B来识别,系统能预测为B即可,至于A C来识别是否真的预测为A C不重要.

2.Recall

中文翻译 “查全率” “召回率”,等价于 “灵敏度(Sensitivity)” , “真正率(TPR)” (真正率就是ROC曲线的纵轴,我们总是期望一个学习器的TPR越高越好,理想情况就是1)

计算公式如下 :

Recall的解释是:所有预测准确的案例中,正例所占的比例

适用的场景是:要尽可能地把所需的类别检测出来,而不在乎结果是否准确, 也就是 宁可错杀一千,也不放过一个

具体来说,地震预测,我们希望把所有的地震都预测到,可以牺牲 Precision(存在误报)

总结一下查全率和查准率的区别:

(1). Recall 和 Precision是相互矛盾的。如果想要更高的recall,那么就要让模型的预测能覆盖到更多的样本,但是这样模型就更有可能犯错,也就是说precision会比较低。如果模型很保守,只能检测出它很确定的样本,那么其precision会很高,但是recall会相对低。

(2). Recall(TPR)的分母是样本中正类的个数,因此样本一旦确定,其分母即为定值,也就是说recall的变化随分子增加而单调递增;precision的分母是样本中预测为正类的个数,其会随着分类阈值的变化而变化,因此Precision的变化受TP和FP的综合影响,不单调,变化情况不可预测。

3. 一些相关参数

真阳性率 TPR (见上文),假阳性率(FPR), FPR 公式为 :

FPR= FP / (FP + TN)

FPR的意义:所有实际为负的例子中,预测错误的比例。 FPR = 1 – Specificity (特异性)

假阴性率:FNR = 1 – Sensitivity (灵敏度,Recall, TPR)

在现实中,人们往往对查全率和查准率都有要求,但是会根据应用场景偏向某一边. 此时需要用到PR曲线。

PR曲线应用场景:需要根据需求找到对应的precision和recall值。如果偏向precison,那就是在保证recall的情况下提升precision;如果偏向recall,那就是在保证precision的情况下提升recall