理解召回率和精确度

7

我目前正在学习信息检索,但在召回率和精确率的示例上遇到了困难。

搜索者使用搜索引擎查找信息。第一屏显示10个文档,第二屏也有10个。

假设已知搜索引擎索引中有10个相关文档。

所以...总共有20个搜索结果,其中10个是相关的。

有谁能帮我理解这个问题吗?

谢谢


你的搜索引擎似乎有一半的结果与所需无关?很不幸,“已知有10个相关文档”和“每页显示10个结果”。这两个数字并不相同(尽管都是“10”)。你想要了解什么? - Floris
3个回答

9
召回率和精度衡量您的结果质量。为了理解它们,让我们先定义一下结果类型。您返回列表中的文档可以是以下类型之一:
- 分类正确 - 真正例(TP):一个相关(positive)的文档确实被返回(true) - 真负例(TN):一个不相关(negative)的文档确实未被返回(true) - 分类错误 - 假正例(FP):一个不相关但被返回的正例 - 假负例(FN):一个相关但未被返回的负例
精度定义为: |TP| / (|TP| + |FP|)
即检索到的文档中确实相关的比例。
召回率定义为: |TP| / (|TP| + |FN|)
即在您的结果集中包含的相关文档所占比例。
因此,在您的示例中,20个结果中有10个是相关的,这使您的精度为0.5。如果没有超过这10个相关文档,则召回率为1。
(在测量信息检索系统性能时考虑精度和召回率是有意义的。通过根本不返回任何结果(即没有垃圾返回实例= >没有FP)或者返回每个实例(即未错过任何相关文档=>没有FN),您可以轻松获得100%的精度或召回率。)

1

好的,这是我在https://dev59.com/_mYq5IYBdhLWcg3w4Edx#63120204中关于“召回率”的回答的延伸。首先在此处阅读有关准确性的内容,然后再去阅读召回率。在这里,我仅使用相同的示例来解释“准确性”:

ExampleNo        Ground-truth        Model's Prediction
   0                 Cat                   Cat
   1                 Cat                   Dog
   2                 Cat                   Cat
   3                 Dog                   Cat
   4                 Dog                   Dog

现在我正在计算猫的精确度。所以是我们的正类,其余的类别(这里只有)是负类精确度意味着实际为正的检测结果占所有检测结果的百分比。所以,在这里,模型检测到了3个猫。但是它们全部正确吗?不是!其中只有2个是正确的(例如0和2),另一个是错误的(例如3)。因此,正确检测的百分比为3个中有2个,即(2/3)*100%= 66.67%
现在来看公式,这里: TP(真正例):当实际为正时预测为正。如果猫是我们的正例,则预测为猫且实际上是猫。 FP(假正例):将某些实际上不是正例的东西预测为正例,即“错误地”将某些东西预测为正例。
现在,某个类的正确检测数量是该类的TP数。但除此之外,模型还将一些其他例子预测为正例,但实际上并不是真正的正例,因此这些是假阳性(FP)。因此,无论正确与否,模型检测到的正类的总数为TP + FP。因此,在所有该类检测中正确检测到正类的百分比将为:TP / (TP + FP),这是该类检测的精度
像召回率一样,我们也可以将此公式推广到任意数量的类别。只需一次考虑一个类别,并将其视为正类,将其余的类别视为负类,并继续同样的过程以计算每个类别的精度。
你可以用另一种方式计算精度和召回率(基本上是同一公式的另一种思考方式)。以 Cat 为例,首先计算有多少示例同时在 Ground-truth 和 Model 的预测中都有 Cat(即计算 TP 的数量)。因此,如果你正在计算精度,则将此计数除以“Model's Prediction”中的“Cat”数量。否则,对于召回率,请除以“Ground-truth”中的“Cat”数量。这与精度和召回率的公式相同。如果你不明白为什么,那么你应该想一想并回顾一下 TP、FP、TN 和 FN 实际上意味着什么。

1
我读过的关于精度的最佳答案! - AroMorin

-3

请在链接中发布一些内容。 - Robert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接