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



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

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

但在二元分类的情况下,label是一个一维张量,只包含类。prediction二维的,包含每个数据点的每个类的概率。

在这种情况下如何计算AUC

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

  • labels:形状与预测匹配的张量。将被投到bool.
  • predictions:任意形状的浮点张量,其值在[0, 1]范围内。

此操作已假定为二元分类。也就是说,labels中的每个元素都声明该类对于单个样本是"正"还是"负"。它不是一个 1-hot 向量,它需要一个元素与独占类数量一样多的向量。

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

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

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

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

最新更新