你能解释一下提供的例子中的分类报告(召回率和精度)吗?
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 度量 [重复]