对于Keras中的多标签分类,哪个指标更好:accuracy
或categorical_accuracy
?显然,最后一个激活函数是sigmoid
,在这种情况下,丢失函数是binary_crossentropy
。
答案 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
,因为类别彼此独立,每个类别的预测都应独立于其他类别的预测