您能否根据提供的示例解释分类报告(召回率和精度)?

Can you explain the classification report (Recall and Precision) on provided example?

现在我知道很多人问过这个问题,但是我还是不太明白sklearn库输出的precision和recall score。这是示例输出:

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

提前致谢!

你有两个不同的类:对或错。想象一下,你有 True as Apples 和 False as Oranges。

召回率 是一个指标,让我们了解正确 值检索到 dataset/database 的总数 number/size。

所以,假设您有一张图片,里面有 30 个苹果。此外,您还有一个对象检测系统,其目的是 identify/detect 图片中的苹果。

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

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

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

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

这是 精度 指标。 Precision 让我们深入了解已经检索到的苹果(不像 Recall 那样针对整个数据库),并回答以下问题:"Out of the already identified as apples, how many of them are exactly apples?"

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

在你的情况下,你会 TP /(TP + FP) === 30 / (30 + 20 <---oranges considered apples))

因此,您的精度为 0.6。

总结一下解释:recall 给出了关于数据库总数的后见之明

回忆回答问题:(前提是你有30个苹果)"out of these 30 apples how many do you retrieve/identify?")。

另一方面,精度为我们提供了有关已检索 "apples" 的信息。

精度回答问题:"Out of the examples already retrieved and considered apples, how many are in fact apples?"

准确率与假阳性有关,而召回率与假阴性有关。