我查看了 Keras 指标文档,找不到与 scikit learn 的平均精度分数指标等效的指标(我认为这与精度召回率曲线下的区域相同,AUPRC(。我相信,除非有人能纠正我,否则它与average_precision_at_k不同。
回答晚了,但我最近遇到了同样的问题。
您可以将 AUC 指标与参数curve
一起使用。像这样:
AUC(curve='PR')
您可以在编译步骤中实现要传递的 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