我有一个由大约 30'000 个数据点和 3 个类组成的数据集。班级不平衡(第 1 班大约 5'000,第 2 班大约 10'000,第 3 班大约 15'000)。我正在构建一个用于数据分类的卷积神经网络模型。为了评估,我正在查看 AUC 和 ROC 曲线。因为我有三个班级,所以我必须使用微观或宏观平均。
为了计算微观和宏观平均 AUC 和 ROC 曲线,我使用此处描述的方法:https ://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html 微观平均 AUC / ROC 由下式计算将标签指标矩阵的每个元素视为二元预测,通过计算每个标签的指标来计算宏观平均 AUC / ROC,并找到它们的未加权平均值。在我的情况下,微观平均 AUC 通常高于宏观平均 AUC。
如果我们看一下sklearn.metrics.roc_auc_score它为此编写的average='macro'方法
这没有考虑标签不平衡。
我不确定对于微平均,他们是否使用与上面链接中描述的方法相同的方法。
用于具有类不平衡微平均或宏观平均的数据集更好吗?这意味着哪个指标不受类别不平衡的影响?在我的情况下,微观平均 AUC(0.85)高于宏观平均 AUC(0.79)。当我查看混淆矩阵时,多数类被很好地预测(因为网络可能学会了预测多数类)但少数类的预测很差(几乎与真阳性一样多的假阴性)。所以,总的来说,我认为 AUC 不应该那么高。