recall

召回率 (Recall):正样本有多少被找出来了(召回了多少)。

准确率 (Precision):你认为的正样本,有多少猜对了(猜的准确性如何)。

 

阐述机器学习分类模型评估中常见的性能度量指标(performance measure)Accuracy(精度)Precision(精准度)Recall(召回率),这是理解更为复杂分类模型性能度量指标(例如目标检测任务中的mAP)的基础。

(一)Accuracy and Error Rate

Accuracy(精度)Error Rate(错误率)是分类模型中最常见的两种性能度量指标,既适用于二分类任务,也适用于多分类任务。

 

 

(二)Precision and Recall

Accuracy虽然常用,但是无法满足所有分类任务需求。我们看两个例子:

例1:恐怖分子识别任务,二分类问题,恐怖分子为正例,非恐怖分子负例。

这个任务的特点是正例负例分布非常不平均,因为恐怖分子的数量远远小于非恐怖分子的数量。假设一个数据集中的恐怖分子的数量与非恐怖分子的数量比例为1:999999999,我们引入一个二分类判别模型,它的行为是将所有样例都识别为负例(非恐怖分子),那么在这个数据集上该模型的Accuracy高达99.9999999%,但恐怕没有任何一家航空公司会为这个模型买单,因为它永远不会识别出恐怖分子,航空公司更关注有多少恐怖分子被识别了出来。

例2:垃圾邮件识别任务,二分类问题,垃圾邮件为正例,非垃圾邮件为负例。

与恐怖分子识别任务类似,人们更关心有多少垃圾邮件被识别了出来,而不是Accuracy。

在上述两个任务中,人们的关注点发生了变化,Accuracy已经无法满足要求,由此我们引入Precision(精准度)Recall(召回率),它们仅适用于二分类问题

对于一个二分类任务,二分类器的预测结果可分为以下4类:

二分类器的结果可分为4类

Precision从预测结果角度出发,描述了二分类器预测出来的正例结果中有多少是真实正例,即该二分类器预测的正例有多少是准确的;Recall从真实结果角度出发,描述了测试集中的真实正例有多少被二分类器挑选了出来,即真实的正例有多少被该二分类器召回。

Precision和Recall通常是一对矛盾的性能度量指标。一般来说,Precision越高时,Recall往往越低。原因是,如果我们希望提高Precision,即二分类器预测的正例尽可能是真实正例,那么就要提高二分类器预测正例的门槛,例如,之前预测正例只要是概率大于等于0.5的样例我们就标注为正例,那么现在要提高到概率大于等于0.7我们才标注为正例,这样才能保证二分类器挑选出来的正例更有可能是真实正例;而这个目标恰恰与提高Recall相反,如果我们希望提高Recall,即二分类器尽可能地将真实正例挑选出来,那么势必要降低二分类器预测正例的门槛,例如之前预测正例只要概率大于等于0.5的样例我们就标注为真实正例,那么现在要降低到大于等于0.3我们就将其标注为正例,这样才能保证二分类器挑选出尽可能多的真实正例。

那么有没有一种指标表征了二分类器在Precision和Recall两方面的综合性能呢?答案是肯定的。如前面所说,按照二分类器预测正例的门槛的不同,我们可以得到多组precision和recall。在很多情况下,我们可以对二分类器的预测结果进行排序,排在前面的是二分类器认为的最可能是正例的样本,排在最后的是二分类器认为的最不可能是正例的样本。按此顺序逐个逐步降低二分类器预测正例的门槛,则每次可以计算得到当前的Precision和Recall。以Recall作为横轴,Precision作为纵轴可以得到Precision-Recall曲线图,简称为P-R图:

P-R曲线

P-R图可直观地显示出二分类器的Precision和Recall,在进行比较时,若一个二分类器的P-R曲线被另一个二分类器的P-R曲线完全包住,则可断言后者的性能优于前者,例如上图二分类器A的性能优于C;如果两个二分类器的P-R图发生了交叉,则难以断言二者性能孰优孰劣,例如上图中的二分类器A与B。然而,在很多情况下,人们还是希望将二分类器A和B性能比个高低,这时一个比较合理的指标是P-R曲线下面的面的大小,它在一定程度上表征了二分类器在Precision和Recall这两方面的综合性能。

(三)总结

  • Precision和Recall往往是一对矛盾的性能度量指标;
  • 提高Precision == 提高二分类器预测正例门槛 == 使得二分类器预测的正例尽可能是真实正例;
  • 提高Recall == 降低二分类器预测正例门槛 == 使得二分类器尽可能将真实的正例挑选出来;
  • P-R曲线下面的面积表征了二分类器在Precision和Recall这两方面的综合性能;
### 关于Scores/Recall 的概念 在机器学习和信息检索领域,recall(召回率)是一个重要的评估指标。具体来说,recall 表示的是所有实际正样本中有多少被成功识别出来[^2]。 对于二分类问题中的混淆矩阵而言: - **True Positive (TP)**:预测为正类且真实情况也是正类的数量; - **False Negative (FN)**:预测为负类但实际上属于正类的数量; 基于上述定义,recall 可以通过下面的公式来计算: \[ \text{Recall} = \frac{\text{TP}}{\text{TP}+\text{FN}} \] 这意味着 recall 能够衡量模型发现所有相关实例的能力,在某些应用场合下非常重要,比如医疗诊断系统中尽可能多地找出患病患者。 当涉及到多标签或多类别场景时,可以针对每一个类别单独计算其对应的 recall 值,并取平均值得到宏观均值(Macro-average),或者先汇总所有的 TP 和 FN 后再做整体除法得到微观均值(Micro-average)[^3]。 #### 应用场景 在一个典型的信息检索过程中,用户输入查询请求后,系统返回一系列可能匹配的结果列表给用户。此时,recall 就用来评价这些结果里有多少真正满足用户的原始需求。高 recall 意味着较少的相关项会被遗漏掉,这对于搜索引擎优化以及个性化推荐服务尤为关键。 ```python def calculate_recall(tp, fn): """ Calculate Recall given true positives and false negatives. Parameters: tp (int): Number of True Positives fn (int): Number of False Negatives Returns: float: Calculated Recall value between 0 and 1 """ try: return tp / (tp + fn) except ZeroDivisionError: return 0.0 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值