召回率 (Recall)
召回率 (Recall)
召回率(Recall) 是机器学习和信息检索中一个非常重要的评估指标,也被称为查全率。
就是看找的全不全,
而不是找的准不准,
这里有点别劲儿,会给人错觉,感觉找的全就是找的准,但这么理解是错的。
找的准不一定是找的全,
比如,一堆绿豆中有红豆37颗,机器人找了1次,挑出了25个豆,且都是红豆,这时候,可以说机器人找的准,但不能说找的全。
“找的准”,即找到的结果中正确比例高,但可能遗漏部分目标。
反过来,
找的全也不一定是找的准,
比如,机器人用一次找到了所有的37颗红豆,但挑出来了52颗豆(包含15颗绿豆),这时候,所有的红豆都被找到了,是找的全,但不能说机器人找的准。
“找的全”,即所有目标都被找到,但可能包含错误结果。
有一种情况,
机器人一次挑拣出来37个豆,都是红豆,此时,可以说机器人找的又全又准。
要区别开,找的准和找的全,不然不好理解下面的内容
数学公式为:

公式中有4个概念Positive、Negative、TP、FN
Positive :正样本
正样本是我们关心的样本,和负样本是对立的,它们是非此即彼的关系,在一堆掺杂了红豆的绿豆堆中,我们随便拿出一个豆子,它不是红豆就是绿豆。
举个例子,
我们的任务是在1堆绿豆中挑拣出所有的红豆。
那么我们就可以将红豆定义为正样本。
Negative :负样本
和红豆对立的所有绿豆。
TP (True Positive): /ˈpɑːzətɪv/
标准叫法:真正例 或 真正类
含义: 所有的正样本(红豆)中,模型预测对了的正样本(红豆)。(预测正确,是红豆,也被正确识别出来了)
FN (False Negative): /ˈneɡətɪv/
标准叫法:假反例 或 假负类
含义: 所有的正样本(红豆)中,被模型错误地预测为了负样本(负样本是绿豆,但假的负样本即假绿豆就是红豆)。(预测错误,是红豆但没被识别出来,通常也称为漏报)
在理解TP和FN之前要先弄懂:
1.
正例、正类、正样本
2.
反例、负类、负样本
不管是例,还是类,还是样本
它们的修饰词都是成对出现的,如正反、正负等等,
从字面上就可以看出修饰词(如正反)都是成对出现的,是对立的,有着明显界限的,二分法的,要么是这边的,要么是那边的,要么是己方的,要么是对方的,不存在中间派,就像二进制数中的0和1,要么是1要么是0,不存在第三种状态,即
非此即彼
还要明白一个事情,修饰词(如正反)只是表明对立面,并没有谁更好、谁更优秀、谁更合理这一说。
修饰词(如正反)只是简单的进行了分类,而且只分了2类,这是关键。
接下来的
类—>正反类—>TP和FN—>召回率
递归式的理解,都是以只分了2类为基础
好了,接下来,我们开始讲 TP和FN
我们以一个现实中的任务为例来理解TP和FN
任务:使用机器人和人工结合的方式(人机协同)来将掺杂在
绿豆堆中的红豆挑出来。
任务分解:
1.
机器人负责挑出红豆(对样本打标签)
2.
人类负责审核验证(判断机器人挑出来的是否都是红豆)
红豆是我们要的,所以红豆是Positive正例(正类、正样本)
而绿豆不是我们想要的,所以绿豆是Negative负例(负类、负样本)
好了,我们大概率会看到4种结果,
1.
真的红豆
2.
假的红豆
3.
真的绿豆
4.
假的绿豆
逐个分析:
1.真的红豆
机器人挑出来的是红豆,机器人也认为是红豆
真~红豆==红豆
红豆正是我们任务的目标,是我们关心的,
那么,我们给这种情况起个名字,叫做:
TP (True Positive)
真的红豆
真的正例
是我们关心的目标:红豆
所有混在绿豆堆里的被正确找到并挑出来的红豆,如果一个没落下,都找到挑出来了,召回率就是百分之百(100%),找的很全。
如果挑出来一堆绿豆,没有一个是红豆,召回率就是0
2.假的红豆
机器人挑出来的是绿豆,但机器人错误的认为是红豆
假~红豆==绿豆
请注意,这里机器人实际挑出来的是绿豆,而绿豆不是我们关心的(任务是挑出红豆),且绿豆的个数的多少对我们的工作结果没有影响,挑出来1个假红豆(1个绿豆)还是挑出来100个假红豆(100个绿)豆没有区别。因为我们在开始讲到的召回率的公式中是挑出来的红豆和没挑出来的红豆之间相关的关系比例,和绿豆没有一点关系,所以,挑出来的绿豆的多少对我们的工作没有任何影响。
换句话说,我们找挑出来1个红豆+1个假红豆(绿豆)与挑出来1个红豆+100个假红豆(绿豆)没有任何区别,召回率都是1个红豆和所有红豆的比值,没有变化。
所以这种情况下我们可以先不给它起名字(不关心就不费力起名字)
3.真的绿豆
真~绿豆==绿豆
和情况2一样,绿豆的个数的多少和我们没有关系,我们要找的是红豆,绿豆的多少跟我们没有关系,所以我们对此情况也不给取名字先,
4.假的绿豆
假~绿豆==红豆
虽然机器人把红豆当成了绿豆,但它确实是红豆,是我们任务关心的,所以我们要给它取名字叫:
FN (False Negative)
假的绿豆
假的反例
是我们关心的目标:红豆
这时,我们可以对召回率进行计算了,
红豆的总数=真红豆+假绿豆
真红豆,是机器人捡出来的,挑出来的,机器人找到的红豆;
假的绿豆,即不是绿豆,因为红豆和绿豆是对立的,非此即彼的,所以,不是绿豆,那就是红豆。
假绿豆其实是红豆,但是机器人没找到的红豆;
红豆只有两种,一种是机器人找到的(真红豆),一种是机器人没找到的(假绿豆),
所以2种红豆之和就是所有的红豆,
红豆总数=真红豆(预测对的正样本)+假绿豆(预测错的正样本)
红豆总数=TP (True Positive)+FN (False Negative)
红豆总数=TP + FN
因为,红豆是是我们关心的,是我们定义的正样本(负样本是绿豆),红豆是正样本,所以有
正样本总数=TP + FN
召回率=正样本(预测对的)/正样本总数
召回率表示所有正例的样本中被正确的预测为正例的比例。
捕鱼的例子
假设一个池塘里有 10 条鱼和 90 只虾。
要捕的是鱼不是虾
你下网捞鱼,最后捞上来了 8 条鱼(捞对了)和 20 只虾(捞错了)。
召回率关注的是: 池塘里原本的 10 条鱼,你捞出来多少条?
计算: 捞出来的鱼(8条) / 池塘里总鱼数(10条) = 80%。
结论: 你的召回率很高(捞出了大部分鱼),虽然也带上来很多虾(准确率可能不高)。
ps:
知识补充
准确率(Precision)。和召回率(recall)两者通常需要结合起来看:
准确率(查准率): 问的是“你预测为正类的那些东西里,有多少是猜对的?”(关心的是“抓得对不对”)。
召回率(查全率): 问的是“正类里,有多少被你预测出来了?”(关心的是“抓得全不全”)。
通常存在的矛盾(Tension):
有时候,为了提高召回率(想把所有病人都找出来),医生可能会把很多疑似的人都标记为“需要复查”。
这样一来,虽然漏诊少了(召回率高),但误诊就多了(准确率变低了)。
反之,如果为了避免误诊,只把症状非常明显的才标记为癌症,那么准确率会很高,但会漏掉很多不典型的病人(召回率变低)。
什么时候应该重点关注召回率
在那些“漏报的代价非常高”的场景下,召回率是核心指标:
医疗诊断: 癌症筛查。宁可让健康的人多做一次检查(降低准确率),也不能漏掉一个真正的病人(提高召回率)。
金融风控: 信用卡盗刷检测。宁可错判几笔正常交易为盗刷(冻结账户引起不便),也不能让盗刷行为没被发现。
安防监控: 犯罪嫌疑人追踪。尽量把所有可能的嫌疑画面都筛选出来,不能漏掉关键线索。
召回率就是衡量模型“找得全不全”的能力,重点关注的是对正类样本的覆盖程度
正类样本
TP (True Positive)、FN (False Negative),它们是构成混淆矩阵(Confusion Matrix /kənˈfjuːʒn/)的四个基本指标中的两个(另外两个是 FP:假正例 和 TN:真反例)。
march2026the02ndMonday
这里再对正例、负例进行一下补充,
正例和负例是对立的,但负例不一定只有一种,范围可能更大,比如说我们设计一个大模型的算法找到目标人群中的黑人,那么黑人就是我们关心的目标,可以将黑人定义为正例,而负例就不只有白人一种了,黄种人、红色人种、棕色人种也都是负例的组成部分。
但不管负例中有多少种类,负例永远和正例是对立的,随机挑选的样本不是正例就是负例。
march2026the04thWednesday
今天,看到2张关于召回率的图片,分享给大家,加深对召回率的理解。


June2026the14thSunday
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)