在k 处计算的平均精度(对于答案中的前 k 个元素),根据wiki、kaggle 处的 ml 指标和这个答案:关于(平均)平均精度的混淆应该计算为 k 处平均精度的平均值,其中平均值k 处的精度计算如下:
其中: P(i) 是列表中截止点 i 处的精度;rel(i) 是一个指标函数,如果排名 i 的项目是相关文档,则等于 1,否则为零。
分隔符min(k, number of relevant documents)的含义是答案中相关条目的最大可能数量。
这种理解是否正确?
MAP@k 是否总是小于为所有排名列表计算的 MAP?
我担心的是,这不是在许多作品中计算 MAP@k 的方式。
通常,分隔符不是min(k, number of relevant documents),而是top-k中相关文档的数量。这种方法将提供更高的 MAP@k 值。
HashNet:通过继续深度学习哈希”(ICCV 2017)
代码:https : //github.com/thuml/HashNet/blob/master/pytorch/src/test.py#L42-L51
for i in range(query_num):
label = validation_labels[i, :]
label[label == 0] = -1
idx = ids[:, i]
imatch = np.sum(database_labels[idx[0:R], :] == …Run Code Online (Sandbox Code Playgroud) python matlab information-retrieval average-precision precision-recall