这里提出的两种使用 AUC-ROC 训练 keras 模型的解决方案对我有用。但是使用 tensorflow 或 scikit rocauc 函数我得到了不同的结果。
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
和
def auc(y_true, y_pred):
return tf.py_func(roc_auc_score, (y_true, y_pred), tf.double)
根据历史,看起来两者都被应用于训练和验证。当我绘制历史指标时,与 scikit 相比,张量流曲线看起来非常平滑。
我不应该使用这两个函数得到相同的结果吗?