【问题标题】:How is the AUC calculated for multi-class data in tensorflow?tensorflow中多类数据的AUC如何计算?
【发布时间】:2021-10-07 20:51:07
【问题描述】:

tf.keras.metrics.AUC 的文档说,在估计多类数据(即multi_label=False)的 AUC 时,

在计算 AUC 之前,应将数据展平为单个标签。

这到底是什么意思?


此外,如果您有多类数据,则可以在不预先展平标签的情况下训练模型,例如,对于给定的 model,您可以运行

model.compile(loss="binary_crossentropy", metrics=[tf.keras.metrics.AUC()])

并且模型将为您计算每个时期的 AUC。我知道在多类问题中使用二元交叉熵损失会告诉 tensorflow 设置多标签分类问题(请参阅here),但我没有告诉tf.keras.metrics.AUC 数据是多标签的。那么在这种情况下它到底在计算什么呢?

【问题讨论】:

    标签: python tensorflow keras


    【解决方案1】:

    据我了解,“扁平化”意味着数据将被重新整形为一维数组,如下所示:[[0, 0, 1, 0], ..., [1, 0, 0, 0]] --> [0, 0, 1, 0, ..., 1, 0, 0, 0]

    如果multi_label=True,将为每个标签单独计算 AUC,然后在标签之间取平均值。如果multi_label=False(默认),将在展平数据上计算 AUC。所以多标签数据(例如[[0, 1, 1, 0], ..., [1, 1, 0, 0]])将被视为单标签数据([0, 1, 1, 0, ..., 1, 1, 0, 0])。

    来自documentation: "multi_label:布尔值,指示是否应处理多标签数据,其中 AUC 为每个标签单独计算,然后跨标签平均,或者(当为 False 时)是否应将数据展平为单个标签“

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-18
      • 2018-06-18
      • 2016-05-12
      • 1970-01-01
      • 2016-02-06
      • 2013-05-08
      • 2015-03-17
      • 2019-12-29
      相关资源
      最近更新 更多