应该考虑哪种方法来评估不平衡的多类分类?

数据挖掘 机器学习 神经网络 深度学习 多类分类 阶级失衡
2022-02-26 02:58:20

我正在研究多类不平衡数据。我的因变量高度偏斜。

           Injury

2(No Injury)         208753
1(Medium Injury)      22318
0(severe Injury)       3394

我使用带有参数“class_weight='balanced'”的随机森林算法来管理第 2 类不平衡。

当我使用average='micro'时,我得到以下结果。

 [[   34   107   688]
  [  148   778  4592]
  [  905  4635 46730]]
 Accuracy Score: 0.8110616374089428
 precision score: 0.8110616374089428
 Recall score: 0.8110616374089428
 AUC Score: 0.8582962280567071
 F1 score: 0.8110616374089428
 Kappa Score: 0.05522284663052324 

对于平均值 = 'macro',结果如下。

[[   31   125   684]
 [  157   838  4559]
 [  890  4694 46639]]
 Accuracy Score: 0.8104816009007626
 precision score: 0.3586119227436326
 Recall score: 0.3602869806251181
 AUC Score: 0.5253225798824679
 F1 score: 0.3592735337079687
 Kappa Score: 0.06376296115668922

那么,我应该考虑哪些结果来评估模型?如果我必须考虑宏观,那么我的模型性能真的很糟糕。请建议是否有任何方法可以提高精度、召回率和 AUC 分数?

如果我考虑微观结果,我的准确率、召回率、f1 分数是相同的。我如何在项目中证明这一点?

我对中度和重度伤害感兴趣。但是宏的单个类精度 0.0312(严重)、0.1409(中)非常低。总体精度得分也很低,只有 0.35。是否有可能提高这些分数?或者将这些低值视为我项目的最终结果是否可以?非常感谢任何建议。注意:我尝试过使用不同算法的 SMOTE 过采样和集成交叉验证,但我最终得到的准确率和召回率低于 50。

任何帮助,将不胜感激。

谢谢你。

2个回答

这个答案解释了微观和宏观有何不同以及您应该使用哪一个。

对于不平衡的数据集,您可以使用F1score。它考虑了稀有类和常见类。不熟悉的可以看看这篇文章。