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

时间:2018-01-09 18:13:17

标签: python tensorflow auc

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

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

但在我的二进制分类中,label是一个一维张量,只包含类。 prediction二维,包含每个数据点的每个类的概率。

在这种情况下如何计算 AUC

1 个答案:

答案 0 :(得分:1)

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

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

此操作已采用二进制分类。也就是说,labels中的每个元素都表明该类是否为“正”"或者"否定"对于单个样本。它不是1-hot矢量,它需要一个元素与独占类数一样多的元素。

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

如果概率来自具有2个神经元的完全连接层和网络头部的softmax激活的神经网络,则考虑用单个神经元和S形激活替换它。输出现在可以直接输入tf.metrics.auc

否则,您可以将预测张量切片为仅考虑正类,这将代表二进制类:

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