zoukankan      html  css  js  c++  java
  • Recall(召回率)and Precision(精确率)

      ◆版权声明:本文出自胖喵~的博客,转载必须注明出处。

      转载请注明出处:http://www.cnblogs.com/by-dream/p/7668501.html 

    前言


      机器学习中经过听到“召回率”和“精确率” 这两个名词,今天简单解释一下。

    概念


      首先我先简单看几个名词解释:  

      通常我们预测的样本中分为正样本和负样本:

        TP ( True Positive ):表示把正样本预测为正样本

        FP ( False Positive ):表示把负样本预测为正样本

        TN ( True Negative ):表示把负样本预测为负样本

        FN ( False Negative ):表示把正样本预测为负样本

      再理解概念应该比较容易了:

        精确率(Precision):预测为正的样本中有多少是真正的正样本。也就是  

        Precision = TP / ( TP + FP )

        召回率(Recall):样本中的正例有多少被预测正确了。也就是  

        Recall = TP / ( TP + FN )

      这里再提一个我们平时常用的一个概念:准确率(accuracy) 即预测正确所有样本占总样本的比例: (TP+TN)/(TP+FN+FP+TN)

      维基百科中对召回率和精确率的解释可能更加的直观一些:

      图中的左侧代表正样本,右侧代表负样本,圈中的为预测为正样本的数据。

      在信息检索领域,精确率和召回率又被称为查准率和查全率:

        查准率=检索出的相关信息量 / 检索出的信息总量
        查全率=检索出的相关信息量 / 系统中的相关信息总量

    举例


      假如让你说出周杰伦《七里香》专辑里的10首歌曲。

      如果你一共只回答了3首,3首都是对的,那么你的:
        精确率 = TP / ( TP + FP ) = 3/(3+0) = 100%
        召回率 = TP / ( TP + FN ) = 3/(3+7) = 30%

      可见你虽然回答的精确率非常的高,但是你的召回率并不高,那么能否可以用召回率来衡量一个人的回答质量呢?我们再看看下面的例子:

      如果你一共回答了15首,其中10首是对的,5首是错的,那么你的:

        精确率 = TP / ( TP + FP ) = 10/(10+5) = 66.6%
        召回率 = TP / ( TP + FN ) = 10/(10+0) = 100%

      可见你的召回率达到100%了,但是你的精确率却并不高了。因此我们在实际应用的过程中,这两个数值需要一起用来评估。 

  • 相关阅读:
    爬虫学习笔记(二)http请求详解
    学习自动化的正确姿势
    binascii模块
    python一些内置函数及方法
    C小点,随便记记
    C:<conio.h>
    C,动态数组
    php intval()函数漏洞,is_numeric() 漏洞,绕过回文判断
    Mp3stego使用,附题,实验吧misc-Canon
    原生js实现Ajax
  • 原文地址:https://www.cnblogs.com/by-dream/p/7668501.html
Copyright © 2011-2022 走看看