zoukankan      html  css  js  c++  java
  • 查全率(召回率)、精度(准确率)和F值

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

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

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

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

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

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


    相关

    不相关

    检索到

    A

    B

    未检索到

    C

    D

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

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

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

    精度P用检索到相关文档数作为分子,所有检索到的文档总数作为分母.即 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值,则是综合这二者指标的评估指标,用于综合反映整体的指标。

  • 相关阅读:
    交互式输入编辑与历史命令补全
    string模板
    textwrap——文本包裹和填充模块解析
    python质量控制
    命令自动补全模块rlcomplete
    密码输入模块getpass
    交互模式启动配置文件
    pprint模块解析
    python基础知识--2字符串
    python基础知识--1注释
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157699.html
Copyright © 2011-2022 走看看