python - Tensorflow 1.4 tf.metrics.auc 用于AUC计算

标签 python tensorflow auc

我正在尝试在模型的训练时间期间记录AUC

根据documentationtf.metric.auc 需要一个labelpredictions,两者的形状相同。

但就我的二元分类而言,label 是一个一维张量,仅包含类。 预测二维,包含每个数据点的每个类别的概率。

在这种情况下如何计算AUC

最佳答案

我们看一下函数tf.metrics.auc中的参数:

  • labels: A Tensor whose shape matches predictions. Will be cast to bool.
  • predictions: A floating point Tensor of arbitrary shape and whose values are in the range [0, 1].

此操作已假设二元分类。也就是说,labels 中的每个元素都说明单个样本的类是“正”还是“负”。它不是 1-hot 向量,后者需要一个具有与独占类数量一样多的元素的向量。

同样,predictions 表示具有一定确定性的预测二元类(有些人可能称之为概率),并且每个元素也应该引用一个样本。它不是 softmax 向量。

如果概率来自具有 2 个神经元的全连接层和网络头部的 softmax 激活的神经网络,请考虑将其替换为单个神经元和 sigmoid 激活。现在可以将输出直接输入到 tf.metrics.auc

否则,您可以只对预测张量进行切片以仅考虑正类,这将同样表示二元类:

auc_value, auc_op = tf.metrics.auc(labels, predictions[:, 1])

关于python - Tensorflow 1.4 tf.metrics.auc 用于AUC计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48174323/

相关文章:

python - 如何在Google colab中更改Keras/tensorflow版本?

python - 占位符返回 gen_array_ops._placeholder(dtype=dtype, shape=shape, name=name)

machine-learning - 这种计算 ROC AUC 的方法或公式如何工作?

Python:在x中以不均匀的步长积分曲线下面积

python - 在将函数附加为对象属性的装饰器中使用 functools.partial

python - 不同的 Python Google API

python - 如何将字符串转换为字节

python - 如何在keras中将回归输出限制在0到1之间

r - 根据 R 中的交叉验证(训练)数据绘制 ROC 曲线

python - 如何解决此错误 “pygame.error: unable to open file ' PaddleHitSound.mp 3'”?