sunrise

每天不断学习,才能不断提升自己。

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  64 随笔 :: 0 文章 :: 92 评论 :: 0 Trackbacks
转自:http://uwei.blogbus.com/logs/11424864.html
外行人做互联网,很多概念不懂。就拿最基础的“召回率”和“准确率”这种概念,看看网上资料知道大概,自己用的时候,脑子里绕着弯儿能想明白,可碰到别人活用的时候,脑子里还是没法一下子反应过来,还是要绕弯想一下。特地找了些资料,将这两个概念整理一下,希望能更熟练。

召回率和准确率是搜索引擎(或其它检索系统)的设计中很重要的两个概念和指标。
召回率: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——召回率。
 
这样想,要容易的多了。

posted on 2012-07-23 09:41 SunRise_at 阅读(2362) 评论(0)  编辑 收藏 引用 所属分类: 自然语言处理

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理