多标签分类 Keras 指标

fpi*_*fpi 5 classification machine-learning multilabel-classification keras

哪个指标更适合 Keras 中的多标签分类:accuracycategorical_accuracy?显然,在这种情况下,最后一个激活函数是sigmoid和作为损失函数binary_crossentropy

Gia*_*gna 7

我不会将准确性用于具有不平衡类别的分类任务。特别是对于多标签任务,您的大部分标签可能都是 False。也就是说,与所有可能标签的基数相比,每个数据点只能具有一小组标签。因此,准确度并不是一个好的指标,如果您的模型预测全部为 False(sigmoid 激活输出 < 0.5),那么您将测量到非常高的准确度。

我会分析每个时期的 AUC 或召回率/精确度。或者,多标签任务可以被视为排名任务(如推荐系统),您可以评估 precision@k 或 recall@k,其中 k 是最高预测标签。

如果您的 Keras 后端是 TensorFlow,请在此处查看支持的指标的完整列表: https: //www.tensorflow.org/api_docs/python/tf/keras/metrics


tod*_*day 6

实际上,accuracyKeras 中没有命名的度量标准。当您metrics=['accuray']在 Keras 中设置时,将根据使用的损失函数自动推断正确的准确度指标。因此,由于您已用作binary_crossentropy损失函数,因此binary_accuracy将选择作为度量。

现在,您绝对应该在多标签分类任务中进行选择binary_accuracycategorical_accuracy因为类彼此独立,并且每个类的预测应该独立于其他类的预测来考虑。

  • 我认为 `binary_accuracy` 不是很好,因为它会给你一种虚假的成就感。由于大多数标签将为零,如果您的模型预测大部分为零,那么您可以轻松地在“binary_accuracy”上获得 95+% (4认同)
  • @AkshayLAradhya 在解释“binary_accuracy”的结果时,这是一个需要考虑的好点,尤其是当标签数量很高时。然而,无论如何,在多标签分类任务中,“categorical_accuracy”都不是一个有效的选择。 (2认同)