你能解释一下提供的例子中的分类报告(召回率和精度)吗?

Posted

技术标签:

【中文标题】你能解释一下提供的例子中的分类报告(召回率和精度)吗?【英文标题】:Can you explain the classification report (Recall and Precision) on provided example? 【发布时间】:2020-08-10 14:12:06 【问题描述】:

现在我知道很多人都问过这个问题,但是,我仍然不太了解 sklearn 库输出的准确率和召回率分数。这是示例输出:

如果可能的话,有人可以用你能用的最简单的语言以下列方式回答我的问题: - 精度 0.95 False 对模型意味着什么? - 精度 0.56 True 对模型意味着什么? - 召回 0.88 False 对模型意味着什么? - 召回 0.76 True 对模型意味着什么?

提前致谢!

【问题讨论】:

【参考方案1】:

您有两个不同的类别:True 或 False。想象一下,你有苹果一样的真和橙子一样的假。

召回率是一个指标,可让我们深入了解所检索到的正确值的总数数量与您的数据集/数据库。

因此,假设您有一张包含 30 个苹果的图片。此外,您还有一个对象检测系统,其目的是识别/检测图片中的苹果。

现在,您的对象检测系统绘制了 50 个边界框(图片中的矩形),30 个围绕所有苹果,20 个围绕一些看起来像这些苹果的橙子。

回忆,在这种情况下,由公式 TP / (TP + FN) 给出,即真阳性 / 真阳性 + 假阴性,是 1.0!当然,您的召回率为 1.0(或 100%,尽管统计上准确率和召回率的正确值介于 0 和 1 之间),因为它检测到了您所有的苹果!

因此,在您的示例中,TP = 30, FN = 0(图像中没有遗漏苹果)。所以30/(30 + 0) = 1.0

但是,您对结果不满意,因为即使您的对象检测系统正确识别出图像中的所有苹果,它也认为 20 个橙子是苹果。

精度指标来了。 Precision 让我们能够深入了解已经检索到的苹果(而不是像 Recall 那样针对整个数据库),并回答以下问题:“在已经识别为苹果的苹果中,有多少是真正的苹果?”

我们可以很容易地看到,精度会惩罚机器学习模型的误报,在我们的例子中,误报是被识别为苹果的橙子。

在您的情况下,您将拥有TP /(TP + FP) === 30 / (30 + 20 <---oranges considered apples))

因此,您的精度为 0.6。

总结一下解释:召回是关于数据库中的总数的事后诸葛亮

Recall 回答了以下问题:(假设您有 30 个苹果)“在这 30 个苹果中,您检索/识别了多少个?”)。

另一方面,精确度为我们提供有关已检索到的“苹果”的信息。

Precision 回答了这个问题:“在已经检索到并考虑过的苹果示例中,有多少实际上是苹果?”

精确度与误报相关,而召回与误报相关。

【讨论】:

以上是关于你能解释一下提供的例子中的分类报告(召回率和精度)吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Python 中的混淆矩阵中获取精度、召回率和 f 度量 [重复]

python实现计算精度召回率和F1值

一次性计算精度、召回率和 F 分数 - python

如何在 python 中使用 libSVM 计算精度、召回率和 F 分数

有关平均精度AP 和精确度-召回率曲线PR AUC的疑惑

R中的精度、召回率和f-measure