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

一、概念


精确率(precision):针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。
召回率(recall):针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。
准确率(accuracy):针对我们预测结果而言的,它表示的是预测结果中正确的预测占总样本数的比例。
在这里插入图片描述在这里插入图片描述

精确率:precision = TP / (TP + FP)
召回率:recall = TP / (TP + FN)
准确率:accuracy = (TP + TN) / (TP + FP + TN + FN)

- TP,True Positive
- FP,False Positive
- TN,True Negative
- FN,False Negative

二、为什么需要使用准确率、召回率、精确率


在二分类中,比如要将遥感影像中的所有植被像素给识别出来。我们想要实现的效果应该是让我们识别结果中正确的预测(植被像素被预测为植被像素、非植被像素预测为非植被像素)占总像素数的比例尽可能大(准确率accuracy高)。看这么一个例子,我们图像一共100个像素,其中植被像素和非植被均为50个像素,预测结果中48个像素被正确分类为植被,48个像素被正确分类为非植被。经过计算可以得到模型的准确率(accuracy)为0.98,已经很高了。

预测值\实际值 植被(T) 非植被(F)
预测为植被 48 2
预测为非植被 2 48
accuracy = (48 + 48) / (48 + 2 + 48 + 2) = 0.98    # 很不错的准确率

但是这里存在一个问题,当影像中非植被样本数量很大时,在预测的时候把所有像素预测为非植被像素。这种情形能让准确率很高,但是对植被像素的识别能力几乎为0。我们需要用一个参数来衡量对植被像素的预测能力,也就是你的预测结果中认为是植被的像素占所有植被像素的比例。这个参数就是召回率(recall),他能衡量出你的模型对正样本的检出能力,也就能避免上述问题。同样是100个像素的例子,如果100个像素中非植被有90个,植被像素为10个,且预测结果中预测为非植被的为99个,预测为植的为1个。此时模型的准确率(accuracy)为0.91,还是很高,但是这个模型的召回率(recall)为0.1,对植被像素检出能力超级低的。

预测值\实际值 植被(T) 非植被(F)
预测为植被 1 0
预测为非植被 9 90
accuracy = (1 + 90) / (1 + 9 + 90 + 0) = 0.91    # 准确率依旧不错
recall = 1 / (1 + 9)= 0.1                       # 但是对正样本的预测能力几乎没有,模型很差!!!

与召回率相对应的是精确率。考虑这么一种情况,你的遥感影像中非植被样本数量占比更大时,你的模型有有更强的预测为植被像素的倾向,真植被像素基本预测正确,但是有不少非植被像素被预测为植被像素,这样也能保证高准确率。从下表格中可以计算得到模型的准确率(accuray)为0.8,还算可以,但是模型的精确率(precision)为0.344,有过强的植被像素检出能力。

预测值\实际值 植被(T) 非植被(F)
预测为植被 10 19
预测为非植被 1 70
accuracy = (10 + 70) / (10 + 1 + 19 + 70) = 0.8    # 准确率依旧不错
precision = 10 / (10 + 19)= 0.344                    # 但是对正样本的预测能力过强,模型很差!!!

三、总结

综上可知,准确率用于整体评估模型的预测能力,但是由于训练样本的正负样本数量的差距过于明显,可能导致模型具有高准确率情况下对正样本检出能力过弱(recall低)或过强(precision低),因此需要通过召回率和精确率来具体评价模型的优异程度。

以上几个指标均用于衡量二分类模型的质量好坏,对于多分类问题可以转化为各个类别的二分类问题来衡量模型质量。比如遥感影像中需要划分为植被、水体、建筑三个类别,则分别计算【植被-其他】、【水体-其他】、【建筑-其他】三个二分类问题的评价指标,进而完成对整个模型的评价。

发布了71 篇原创文章 · 获赞 56 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/baidu_26646129/article/details/88634544