召回率与准确率

外行人做互联网,很多概念不懂。就拿最基础的“召回率”和“准确率”这种概念,看看网上资料知道大概,自己用的时候,脑子里绕着弯儿能想明白,可碰到别人活用的时候,脑子里还是没法一下子反应过来,还是要绕弯想一下。特地找了些资料,将这两个概念整理一下,希望能更熟练。

召回率和准确率是搜索引擎(或其它检索系统)的设计中很重要的两个概念和指标。
召回率:Recall,又称“查全率”;
准确率:Precision,又称“精度”、“正确率”。
在一个大规模数据集合中检索文档时,可把集合中的所有文档分成四类:

 
相关
不相关
检索到
A
B
未检索到
C
D

 

 

 

 

 

 

A:检索到的,相关的                   (搜到的也想要的)
B:检索到的,但是不相关的           (搜到的但没用的)
C:未检索到的,但却是相关的        (没搜到,然而实际上想要的)
D:未检索到的,也不相关的          (没搜到也没用的)

通常我们希望:数据库中相关的文档,被检索到的越多越好,这是追求“查全率”,即A/(A+C),越大越好。
同时我们还希望:检索到的文档中,相关的越多越好,不相关的越少越好,这是追求“准确率”,即A/(A+B),越大越好。
 
归纳如下:
召回率:检索到的相关文档 比 库中所有的相关文档
准确率:检索到的相关文档 比 所有被检索到的文档
 
“召回率”与“准确率”虽然没有必然的关系(从上面公式中可以看到),然而在大规模数据集合中,这两个指标却是相互制约的。
由于“检索策略”并不完美,希望更多相关的文档被检索到时,放宽“检索策略”时,往往也会伴随出现一些不相关的结果,从而使准确率受到影响。
而希望去除检索结果中的不相关文档时,务必要将“检索策略”定的更加严格,这样也会使有一些相关的文档不再能被检索到,从而使召回率受到影响。

凡是设计到大规模数据集合的检索和选取,都涉及到“召回率”和“准确率”这两个指标。而由于两个指标相互制约,我们通常也会根据需要为“检索策略”选择一个合适的度,不能太严格也不能太松,寻求在召回率和准确率中间的一个平衡点。这个平衡点由具体需求决定。

其实,准确率(precision,精度)比较好理解。往往难以迅速反应的是“召回率”。我想这与字面意思也有关系,从“召回”的字面意思不能直接看到其意义。
我觉得“召回率”这个词翻译的不够好。“召回”在中文的意思是:把xx调回来。比如sony电池有问题,厂家召回。
既然说翻译的不好,我们回头看“召回率”对应的英文“recall”,recall除了有上面说到的“order sth to return”的意思之外,还有“remember”的意思。

Recall:the ability to remember sth. that you have learned or sth. that has happened in the past.

这里,recall应该是这个意思,这样就更容易理解“召回率”的意思了。
当我们问检索系统某一件事的所有细节时(输入检索query),Recall就是指:检索系统能“回忆”起那些事的多少细节,通俗来讲就是“回忆的能力”。能回忆起来的细节数 除以 系统知道这件事的所有细节,就是“记忆率”,也就是recall——召回率。
 
这样想,要容易的多了。

 

来源:http://uwei.blogbus.com/logs/11424864.html

 

### 关于召回率准确率的例题练习 #### 召回率(Recall) 召回率是指模型能够正确识别出的所有正类样本占实际正类样本的比例。其计算公式如下: \[ \text{召回率} = \frac{\text{真正例 (TP)}}{\text{真正例 (TP)} + \text{假反例 (FN)}} \] #### 准确率(Accuracy) 准确率是指模型预测正确的总样本数占全部样本数的比例。其计算公式如下: \[ \text{准确率} = \frac{\text{真正例 (TP)} + \text{真反例 (TN)}}{\text{真正例 (TP)} + \text{假正例 (FP)} + \text{假反例 (FN)} + \text{真反例 (TN)}} \] 以下是几个具体的例子供参考: --- #### **例题 1** 假设有一个二分类问题,混淆矩阵如下所示: ```plaintext [[7, 3], [2, 8]] ``` - 真正例 (TP) = 8 - 假正例 (FP) = 3 - 假反例 (FN) = 2 - 真反例 (TN) = 7 **计算:** 1. **召回率** \[ \text{召回率} = \frac{\text{TP}}{\text{TP} + \text{FN}} = \frac{8}{8 + 2} = 0.8 \][^1] 2. **准确率** \[ \text{准确率} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{FP} + \text{FN} + \text{TN}} = \frac{8 + 7}{8 + 3 + 2 + 7} = 0.85 \][^4] --- #### **例题 2** 某垃圾邮件检测系统的测试结果显示以下数据: - 正常邮件总数:90 条 - 垃圾邮件总数:10 条 - 被错误标记为正常邮件的垃圾邮件数量:2 条 - 被错误标记为垃圾邮件的正常邮件数量:3 条 构建混淆矩阵并计算召回率准确率。 **解答:** 1. 构建混淆矩阵: ```plaintext [[87, 3], # 正常邮件被正确分类的数量 vs 错误分类为垃圾邮件的数量 [2, 8]] # 垃圾邮件被错误分类为正常邮件的数量 vs 正确分类为垃圾邮件的数量 ``` 2. **召回率** \[ \text{召回率} = \frac{\text{TP}}{\text{TP} + \text{FN}} = \frac{8}{8 + 2} = 0.8 \] 3. **准确率** \[ \text{准确率} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{FP} + \text{FN} + \text{TN}} = \frac{8 + 87}{8 + 3 + 2 + 87} = 0.93 \][^4] --- #### **例题 3** 给定一组预测结果及其真实标签如下表所示: | 实际值 | 预测值 | |--------|--------| | 1 | 1 | | 1 | 0 | | 0 | 1 | | 1 | 1 | | 0 | 0 | 其中,“1”表示正类,“0”表示负类。 **计算:** 1. 混淆矩阵: ```plaintext [[2, 1], # TN, FP [1, 2]] # FN, TP ``` 2. **召回率** \[ \text{召回率} = \frac{\text{TP}}{\text{TP} + \text{FN}} = \frac{2}{2 + 1} = 0.6667 \] 3. **准确率** \[ \text{准确率} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{FP} + \text{FN} + \text{TN}} = \frac{2 + 2}{2 + 1 + 1 + 2} = 0.75 \] --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值