使用Tensorflow指标获得平均精度

时间:2019-05-31 16:16:41

标签: tensorflow

我很难理解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

现在,这实际上是一个查询。我想对所有测试数据进行处理。因此,我有一个循环,其中保存了所有单精度并在最后为所有查询计算平均精度。但首先,将上述代码转换为类似的指标就足够了。

0 个答案:

没有答案