高度不平衡的多类数据集的哪些性能指标?

机器算法验证 分类 不平衡类 模型评估 奥克 精确召回
2022-03-17 21:35:01

我有一个包含 5 个类的数据集。大约 98% 的数据集属于第 5 类。第 1-4 类平均共享大约 2% 的数据集。但是,正确分类 1-4 类非常重要。

对于我的任务,准确性并不是衡量性能的好方法。我发现了很多关于不平衡二元分类任务指标的信息,但没有找到关于多类问题的信息。

对于这样的任务,我应该使用哪些性能指标?

  • TP、TN、FP、FN
  • 精确
  • 灵敏度
  • 特异性
  • F分数
  • ROC-AUC(微观、宏观、样本、加权)
1个回答

对于不平衡的课程,我建议使用加权 F1 分数或平均 AUC/加权 AUC

让我们先看看二分类的 F1-Score。

F1 分数赋予较低的数字更大的权重。

例如,

  • 当 Precision 为 100% 且 Recall 为 0% 时,F1 分数将为 0%,而不是 50%。
  • 假设我们有分类器 A 的精度=召回=80%,分类器 B 的精度=60%,召回率=100%。在算术上,两个模型的准确率和召回率的平均值是相同的。但是当我们使用 F1 的调和平均公式时,分类器 A 的得分为 80%,而分类器 B 的得分仅为 75%。Model B 的低精度分数拉低了其 F1 分数。

现在,来到多类分类

假设我们有五个类,class_1、class_2、class_3、class_4、class_5

并且该模型对每个类都有以下结果。

在此处输入图像描述

每个类别的精度公式 = (True Positive for class)/(Count of predicted Positive for that class)

例如,class_1 的精度 =(class_1 的真阳性)/(class_1 的预测计数)

每个班级的召回公式 = (True Positive for class)/(Actual Positive for that class)

例如,class_1 的精度 =(class_1 的真阳性)/(class_1 的总实例)

F1 的公式: F1 是 Precision 和 Recall 的几何平均值,即

F1 = 2*(Precision*Recall)/(Precision+Recall)

Macro-F1 = Average(Class_1_F1 + Class_2_F1 + Class_3_F1 + Class_4_F1 + Class_5_F1)

Macro-Precision = Average(Class_1_Precision + Class_2_Precision + Class_3_Precision + Class_4_Precision + Class_5_Precision)

Macro-Recall = Average(Class_1_Recall + Class_2_Recall + Class_3_Recall + Class_4_Recall + Class_5_Recall)

宏计算的问题:在对宏 F1 进行平均时,我们给每个类赋予相等的权重。

加权 F1 分数:

我们不必这样做:在加权平均 F1 分数或加权 F1 中,我们通过该类的样本数对每个类的 F1 分数进行加权。

Weighted F1 Score = (N1*Class_1_F1 + N2*Class_2_F1 + N3*Class_3_F1 + N4*Class_4_F1 + N5*Class_5_F1)/(N1 + N2 + N3 + N4 + N5)

参考资料:https ://towardsdatascience.com/multi-class-metrics-made-simple-part-ii-the-f1-score-ebe8b2c2ca1