文献中的recall rate(查全率或召回率) and precision(精度)是很重要的概念.可惜很多中文网站讲的我都稀里糊涂,只好用google查了个英文的,草翻如下:召回率和精度定义:

从一个大规模数据集合中检索文档的时,可把文档分成四组

- 系统检索到的相关文档(A)

- 系统检索到的不相关文档(B)

- 相关但是系统没有检索到的文档(C)

- 相关但是被系统检索到的文档(D)



相关

不相关


检索到

A


B


未检索到

C


D

直观的说,一个好的检索系统检索到的相关文档越多越好,不相关文档越少越好.

召回率和精度是衡量信息检索系统性能最重要的参数.

召回率R:用检索到相关文档数作为分子,所有相关文档总数作为分母,即 R=A/(A+C)

:用检索到相关文档数作为分子,所有检索到的文档总数作为分母.即 P=A/(A+B).

下面举例说明召回率和精度之间的关系:

一个数据库有500个文档, 其中有50个文档符合定义的问题.系统检索到75个文档,但是只有45个符合定义的问题.

召回率 R=45/50=90%

精度 P=45/75=60%

本例中, 系统检索是比较有效的,召回率为90%. 但是结果有很大的噪音,有近一半的检索结果是不相关. 研究表明:在不牺牲精度的情况下,获得一个高召回率是很困难的.参看下图:召回率越高,精度下降的很快,而且这种趋势不是线性的.

正确率、召回率和F值是在鱼龙混杂的环境中,选出目标的重要评价指标。

不妨看看这些指标的定义先:

正确率 = 正确识别的个体总数 / 识别出的个体总数

召回率 = 正确识别的个体总数 / 测试集中存在的个体总数

F值 = 正确率 * 召回率 * 2 / (正确率 + 召回率)

不妨举这样一个例子:某池塘有1400条鲤鱼,300只虾,300只鳖。现在以捕鲤鱼为目的。Seaeagle撒一大网,逮着了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值,则是综合这二者指标的评估指标,用于综合反映整体的指标。