Recall(召回率)and Precision(精确率)

时间:2021-12-20 04:57:54

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

  转载请注明出处: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)

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

Recall(召回率)and Precision(精确率)

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

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

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

举例


  假如让你说出周杰伦<<七里香>>专辑里的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%了,但是你的精确率却并不高了。因此我们在实际应用的过程中,这两个数值需要一起用来评估。