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%了,但是你的精确率却并不高了。因此我们在实际应用的过程中,这两个数值需要一起用来评估。