如何找到 keras 模型的 AUC 度量值?

数据挖掘 机器学习 scikit-学习 喀拉斯
2021-09-19 03:44:12

我想为我的 Keras 模型找到 AUC 指标。Keras 没有任何内置函数来测量 AUC 指标。所以我发现编写一个计算 AUC 指标的函数并在编译 Keras 模型时调用这个函数,例如:

from sklearn import metrics
from keras import backend as K

def auc(y_true, y_pred):
    return metrics.roc_auc_score(K.eval(y_true), K.eval(y_pred))     
model.compile(loss="binary_crossentropy", optimizer='adam',metrics=['auc'])

但这在我的情况下不起作用。请帮我弄清楚这个查询。

谢谢

2个回答

现在有一个内置函数来计算(近似)AUC。tf.keras.metrics.AUC显然,您只需要执行以下操作

...
model = tf.keras.Model(inputs, outputs)
model.compile('sgd', loss='mse', metrics=[tf.keras.metrics.AUC()])

我通过更新 AUC 函数自己解决了这个查询。

def auc(y_true, y_pred):
    auc = tf.metrics.auc(y_true, y_pred)[1]
    K.get_session().run(tf.local_variables_initializer())
    return auc

现在,这项工作对我来说非常好。