我很难理解https://github.com/tensorflow/tensorflow/blob/r1.13/tensorflow/python/ops/metrics_impl.py
中与精度相关的不同指标average_precision_at_k和_streaming_sparse_average_precision_at_top_k有什么区别
我想计算平均精度,但我不知道tf metric average_precision_at_k是否是我想要的。这是python中的一个简单示例:
我的预测包含分数(查询的所有候选文档的分数)。
score=[0.1,0.4,0.8]
labels=[0,0,1]
sorted_indices = np.argsort(score)
sorted_indices = sorted_indices[::-1]
true_positive_labels = labels[sorted_indices]
number_pos=0
position=1
for i,k in enumerate(true_positive_labels):
if i<3:
if k==1:
position+=i
number_pos+=1
break
precision=float(number_pos)/position
现在,这实际上是一个查询。我想对所有测试数据进行处理。因此,我有一个循环,其中保存了所有单精度并在最后为所有查询计算平均精度。但首先,将上述代码转换为类似的指标就足够了。