等同于scikit Learn的平均精度得分指标的Keras指标

时间:2019-09-13 06:47:46

标签: keras scikit-learn

我看过Keras指标文档,找不到与scikit Learn的average precision score指标等效的值(我认为它与精确调用曲线下的面积AUPRC相同)。我相信它与average_precision_at_k是不同的,除非有人可以对此进行纠正。

2 个答案:

答案 0 :(得分:1)

迟到的答案,但我最近遇到了同样的问题。

您可以将 AUC metric 与参数 curve 一起使用。类似的东西:

AUC(curve='PR')

答案 1 :(得分:0)

您可以为在编译步骤中传递的keras实现自定义指标。 (https://keras.io/metrics/)该函数需要使用(y_true,y_pred)作为参数并返回单个张量值。

这是keras的average_precision的实现:

import keras.backend as K

def average_precision(y_true, y_pred):
    true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
    predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
    precision = true_positives / (predicted_positives + K.epsilon())
    return precision