zoukankan      html  css  js  c++  java
  • [搜索]一种改进的召回率准确率公式计算方式

    

    在信息检索系统中。召回率和准确率的定义为:


    召回率:(Recall Ratio,简称R)是衡量信息检索系统在实施某一检索作业时检出相关文献能力的一种測度指标,其计算方法为:Recall=检出的相关文献量/检索系统中的相关文献总量.

    准确率:(Precision Ratio,简称P)是衡量系统在实施某一检索作业时检索精准度的一个測度指标。其计算方法为:

    Precision=检出的相关文献量/检出的文献总量.


    比方一个系统中有100篇文档,对于某一次查询,有10篇相关的文档。在这次检索中,共检出8篇文档,当中4篇为相关文档,则

    召回率为:4/10 = 40%

    准确率为:4/8 = 50%

    可是假设另外一个系统中有10000篇文档。针对相同的一次查询,有10篇相关文档,而且也检出8篇文档,当中4篇为相关文档,则

    召回率为:4/10 = 40%

    准确率为:4/8 = 50%

    也就是两个系统针对的这两次查询,检索效果一样。事实上直观的感觉,第二个系统的检索效果明显好于第一个检索系统。打个例如。第一个系统的检索好像是从一把沙中挑出几个贝克,而第二个检索系统是从一箩筐沙中挑出那几个贝克,显然第二个系统的难度大多了。

    这就是传统召回率和准确率的弊端。并不能反映这些区别。

    所以,须要一种新的召回率和准确率的度量方法来克服这个弊端,我们能够考虑非相关文档在文档集中的比重。由于在一个真实的检索系统中,非相关文档总是远远大于相关文档。在此定义一个新的召回率和准确率公式,以不相关文档与总文档数的比值作为系数。

    公式例如以下:


    新召回率=召回率*(不相关文档数/总文档数)
    确率=准确率*(不相关文档数/总文档数)

    我们用新的公式再来计算一下这两个检索系统的召回率和准确率,则

    第一个系统的

    新召回率=40%*(90/100) = 40%*90% = 36%

    新准确率=50%*(90/100) = 50%*90 = 45%

    第二个系统的

    新召回率=40%*(9990/10000) = 40%*99.9%=39.6%

    新准确率=50%*(9990/10000) = 50%*99.9%=49.5%

    从新的公式来看,第二个系统的召回率和准确率都要比第一个系统要高。体现出来这样的区别。





  • 相关阅读:
    ES6走一波 Generator异步应用
    扁平数据结构化
    Django笔记&教程 6-2 表单(Form)基础操作
    Django笔记&教程 6-3 使用模型(models)创建表单(form)
    Django笔记&教程 6-4 forms进阶操作,重写forms方法
    Django笔记&教程 7-1 基于类的视图(Class-based views)介绍
    Django笔记&教程 7-3 拓展CBVs(Class-based views)
    Django笔记&教程 5-1 基础增删查改
    Django笔记&教程 1-1 一 新建项目
    Django笔记&教程 0-2 框架版本与相关工具
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6874619.html
Copyright © 2011-2022 走看看