您有两个不同的类别: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 回答了这个问题:“在已经检索到并考虑过的苹果示例中,有多少实际上是苹果?”
精确度与误报相关,而召回与误报相关。