多标签分类Keras指标

时间:2018-12-20 18:55:25

标签: machine-learning keras classification multilabel-classification

对于Keras中的多标签分类,哪个指标更好:accuracycategorical_accuracy?显然,最后一个激活函数是sigmoid,在这种情况下,丢失函数是binary_crossentropy

2 个答案:

答案 0 :(得分:2)

对于分类不平衡的分类任务,我不会使用“准确性”。 特别是对于多标签任务,您可能大多数标签都为False。即,与所有可能标签的基数相比,每个数据点只能具有少量标签。 因此,准确性不是一个好的指标,如果您的模型预测所有False(S型激活输出<0.5),那么您将获得非常高的准确性。

我将在每个时期分析AUC或召回率/精度。 另外,也可以将多标签任务视为排名任务(例如Recommender Systems),您可以评估precision @ k或callback @ k,其中k是预测的最高标签。

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

答案 1 :(得分:1)

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

现在,在多标签分类任务中,您绝对应该选择binary_accuracy而不是categorical_accuracy,因为类别彼此独立,每个类别的预测都应独立于其他类别的预测