gpt4 book ai didi

precision - Top k精度

转载 作者:行者123 更新时间:2023-12-04 03:56:17 30 4
gpt4 key购买 nike

我有一个文档数据库,我可以在其中执行搜索。对于每一次搜索,都有 n 个肯定。现在,如果我通过 precision@k 和 recall@k 来评估搜索的性能,那么对于后者来说一切都很好:

recall@k = 真阳性/positives = 真阳性/n

真阳性的数量在 [0, n] 范围内,因此 recall@k 在 [0, 1] 范围内 - 完美。然而,关于 precision@k 的事情变得很奇怪。如果我计算

精度@k = tp/(tp + fp) = tp/k

precision@k 在 [0, n/k] 范围内,这对我来说意义不大。例如考虑边缘情况 n=1。不能增加 tp,因为正数不超过 n 个,也不能减少 k,因为好吧,它叫做 precision@k,不是吗?

我哪里错了?

可以在 [1] 图 8b 中找到我正在谈论的示例。您可以看到前 1..200 个查询结果的精确召回曲线。尽管数据库中只有不到 200 个阳性,但准确率还是相当高的。

[1] https://www.computer.org/csdl/pds/api/csdl/proceedings/download-article/19skfc3ZfKo/pdf

最佳答案

由于 precision@k 被计算为 #num_relevant/k,它的最大值可能是 1(如果检索列表中的所有 k 个排名靠前的文档是相关)。

你的论点是正确的,因为如果#relevant_docs 小于 k 那么你就会被 P@k 指标错误地惩罚,因为在这种情况下即使有完美的检索你也不会得分 1 关于指标。

因此,一个标准的解决方案是同时考虑和计算精度值,而不是在任意 k 值处,而是在召回点处,即在您的排名列表中检索到相关文档的那些位置.然后,您最终会将总和除以相关文档的数量。此度量称为平均精度* (MAP)。下面是计算 MAP 的示例。

假设您检索了 10 个文档,其中 2 与排名 25 相关(并且总共有 3 个相关文档 - 其中一个未检索到)。

您在召回点(k = 2 和 5 的值)计算 precision@k。

这给出:

1/2 (at position 2, one is relevant out of 2) +
2/5 (at position 5, one 2 are relevant out of 5)

然后将此数字除以 3(已知相关文档的总数)。最后一步有利于实现高召回率的系统,而基于分界点的精度有利于将文档检索到最高排名的系统。

请注意,系统 A 以更高的排名检索相关文档并检索更多的相关文档,其得分要高于无法满足其中一种或两种情况的系统。

另请注意,如果您在总共检索到的 10 个文档中检索到排名前 3 的 3 个相关文档(选中此),您将在此指标上获得满分 1,这些文档解决了您的担忧激发了这个问题。

关于precision - Top k精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63850906/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com