如何理解召回率、精确率以及准确率?

参考:知乎 和 机器学习性能评估指标

这里写图片描述

True Positive(真正, TP):将正类预测为正类数. 
True Negative(真负 , TN):将负类预测为负类数. 
False Positive(假正, FP):将负类预测为正类数 → 误报 (Type I error). 
False Negative(假负 , FN):将正类预测为负类数 →漏报 (Type II error).

实际上非常简单,精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP),也就是 
这里写图片描述

而召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。 
这里写图片描述 
其实就是分母不同,一个分母是预测为正的样本数,另一个是原来样本中所有的正样本数。

需要注意的是精确率(precision)和准确率(accuracy)是不一样的 
这里写图片描述 
在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量是很少的,一般只有千分之几,如果用acc,即使全部预测成负类(不点击)acc 也有 99% 以上,没有意义。

举个例子 
假设我们手上有60个正样本,40个负样本,我们要找出所有的正样本,系统查找出50个,其中只有40个是真正的正样本,计算上述各指标。

  • TP: 将正类预测为正类数 40 
  • FN: 将正类预测为负类数 20 
  • FP: 将负类预测为正类数 10 
  • TN: 将负类预测为负类数 30

准确率(accuracy) = 预测对的/所有 = (TP+TN)/(TP+FN+FP+TN) = 70% 
精确率(precision) = TP/(TP+FP) = 80% 
召回率(recall) = TP/(TP+FN) = 2/3

猜你喜欢

转载自blog.csdn.net/u012501054/article/details/81453403