损失很糟糕,但准确性会提高?

数据挖掘 神经网络 分类数据 损失函数
2022-02-25 12:31:33

我有一个图像的多类别分类问题。有 5 个(不平衡的)类,我使用不同的类权重。一般来说,每个班级只有几个训练图像:~56-238

为了对它们进行分类,我使用了具有大量数据增强功能的神经网络。我有一个与训练集具有相同分布的验证集(但每个类只有大约 30% 的图像)。

由此产生的损失/准确度图看起来有点奇怪(编辑:第二张图包含术语“测试损失”,但它是“验证损失”):

在此处输入图像描述

在此处输入图像描述

我不确定如何解释这两个图像:验证准确度明显增加,但验证损失并没有太大变化。谁能帮我解释这些图表?

非常感谢你

1个回答

如果您有一个不平衡的数据集,您可能需要采取措施重新采样在评估算法的结果时,选择更适合类不平衡问题的指标可能是个好主意。

准确度不是评估类不平衡问题性能的好指标,因为准确度因预测最常出现的标签而得到奖励。准确度是在所有观测值的数量上正确预测的标签数量的度量。例如,如果您有 99% 的数据带有标签“a”和 1% 的数据带有标签“b”,然后您将整个数据集标签为“a”,那么您的准确度将为 99%。但是,您正确标注“b”的能力为 0%。日志丢失对于类不平衡问题也不是特别好。您可能需要考虑加权对数损失

以下是您可以调查的其他一些指标。

精确度和召回率

精度是正确预测的阳性标签与总预测阳性观察值的比率。召回率是正确预测的正面观察与给定类中所有观察的比率。您可以在此处阅读有关这些指标的更多信息对于二元分类问题,您可以在混淆矩阵中查看预测类与实际类。

TP FP FN TN

F1分数

F1 分数是准确率和召回率的加权平均值。F1 分数考虑了假阴性和假阳性。因此,在评估类不平衡问题时,它比准确性更能提供信息。

F1分数公式

F1 Score 以Python 包的形式存在于 sklearn 中它也作为函数存在于 R 中

精确召回曲线下的面积

您还可以研究精确召回曲线(PR) 下的面积,即精确召回曲线图下的测量值。它可用于评估大类不平衡问题。PR Curve 作为sklearn 中的 python 包R 包存在。
公关曲线