原文:http://peghoty.blog.163.com/blog/static/49346409201302595935709/
正确率、召回率和 F 值是在鱼龙混杂的环境中,选出目标的重要评价指标。不妨看看这些指标的定义先:
1. 正确率 = 正确识别的个体总数 / 识别出的个体总数
2. 召回率 = 正确识别的个体总数 / 测试集中存在的个体总数
3. F值 = 正确率 * 召回率 * 2 / (正确率 + 召回率) (F 值即为正确率和召回率的调和平均值)
不妨举这样一个例子:某池塘有1400条鲤鱼,300只虾,300只鳖。现在以捕鲤鱼为目的。Seaeagl e撒一大网,逮着了700条鲤鱼,200只虾,100只鳖。那么,这些指标分别如下:
正确率 = 700 / (700 + 200 + 100) = 70%
召回率 = 700 / 1400 = 50%
F值 = 70% * 50% * 2 / (70% + 50%) = 58.3%
不妨看看如果 Seaeagle 把池子里的所有的鲤鱼、虾和鳖都一网打尽,这些指标又有何变化:
正确率 = 1400 / (1400 + 300 + 300) = 70%
召回率 = 1400 / 1400 = 100%
F值 = 70% * 100% * 2 / (70% + 100%) = 82.35%
由此可见,正确率是评估捕获的成果中目标成果所占得比例;召回率,顾名思义,就是从关注领域中,召回目标类别的比例;而 F 值,则是综合这二者指标的评估指标,用于综合反映整体的指标。
召回率
基本概念
召回率
召回率(Recall)和精度(Precise)是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中召回率是是检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。精度是检索出的相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率。
计算方法
recall
假定:从一个大规模数据集合中检索文档时,可把文档分成四组:
- 系统检索到的相关文档(A)
- 系统检索到的不相关文档(B)
- 相关但是系统没有检索到的文档(C)
- 不相关且没有被系统检索到的文档(D)
则:
- 召回率R:用检索到相关文档数作为分子,所有相关文档总数作为分母,即R = A / ( A + C )
-
精度P:用检索到相关文档数作为分子,所有检索到的文档总数作为分母.即P = A / ( A + B ).
举例来说:
一个数据库有500个文档,其中有50个文档符合定义的问题。系统检索到75个文档,但是只有45个符合定义的问题。
召回率 R=45/50=90%
本例中,系统检索是比较有效的,召回率为90%。但是结果有很大的噪音,有近一半的检索结果是不相关。研究表明:在不牺牲
精度的情况下,获得一个高召回率是很困难的。
搜索系统的召回率
对于一个检索系统来讲,召回率和
精度不可能两全其美:召回率高时,精度低,精度高时,召回率低。所以常常用 11种召回率下 11 种
精度的平均值来衡量一个检索系统的精度。我们也可以将这两个
度量值融合成一个度量值,如 F度量 (F-measure)。对于搜索引擎系统来讲,因为没有一个搜索引擎系统能够搜集到所有的 WEB 网页,所以召回率很难计算。目前的搜索引擎系统都非常关心
精度。
影响一个搜索引擎系统的性能有很多因素,最主要的是
信息检索模型,包括文档和查询的表示方法、评价文档和用户查询相关性的匹配策略、查询结果的排序方法和用户进行相关度反馈的机制。
“召回率” 与 “
准确率” 虽然没有必然的关系,然而在大规模数据集合中,这两个指标却是
相互制约的。
由于 “检索策略” 并不完美,希望更多相关的文档被检索到时,通常放宽 “检索策略” ,此时往往也会伴随出现一些不相关的结果,从而使准确率受到影响。
而希望去除检索结果中的不相关文档时,务必要将 “检索策略” 定的更加严格,这样也会使有一些相关的文档不再能被检索到,从而使召回率受到影响。
凡是涉及到大规模数据集合的检索和选取,都涉及到 “召回率” 和 “
准确率” 这两个指标。而由于两个指标相互制约,我们通常也会根据需要为 “检索策略” 选择一个合适的度,不能太严格也不能太松,寻求召回率和准确率中间的一个平衡点。这个平衡点由具体需求决定。