【发布时间】:2020-12-30 04:53:48
【问题描述】:
我有一个文档数据库,我在其中执行搜索。每次搜索都有 n 个正数。现在,如果我通过precision@k 和recall@k 评估搜索的性能,那么对于后者来说一切正常:
recall@k = 真阳性 / 阳性 = 真阳性 / 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 information-retrieval precision-recall