似乎无法使tensorflow的“ tflearn.objectives.roc_auc_score(y_pred,y_true)”正常工作

时间:2019-05-08 01:29:11

标签: tensorflow tensorflow-datasets

我是tensorflow的新手,但我正尝试使用其“ tflearn.objectives.roc_auc_score(y_pred,y_true)”函数来计算auc。 我之所以使用这一特定功能,是因为目标函数直接优化了AUC

这是我作为概念证明所使用的代码:

import numpy as np
from sklearn.metrics import roc_auc_score
y_true = np.array([1, 1, 0, 0])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])
print("sklearn auc: {}".format(roc_auc_score(y_true, y_scores)))

import tensorflow as tf
import tflearn
auc = tflearn.objectives.roc_auc_score (y_scores, y_true)
with tf.Session() as sess:
    sess.run(tf.local_variables_initializer())
    print("tf auc: {}".format(sess.run([auc, update_op])))

这给了我

sklearn auc: 0.25
tf auc: [1.0395000000000003, 0.74999976]

当我进行以下更改

y_true = np.array([0, 0, 1, 1])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])

我得到我的AUC的相同号。我假设列表(0.74999976)中的第二个元素是AUC

sklearn auc: 0.75
tf auc: [0.01562500000000001, 0.74999976]

不用说,我不相信我得到的AUC编号。可以在http://tflearn.org/objectives/

中找到AUC的文档。

我正在使用tensorflow 1.10。任何帮助或见解将不胜感激。谢谢

0 个答案:

没有答案