平衡 XGboost 仍然偏向于多数派

数据挖掘 分类 xgboost 多类分类 多标签分类
2022-02-16 04:33:40

我有用于多类分类的不平衡数据集,我尝试在 XGboost 中使用类权重选项,分类器仍然倾向于支持多数类。我不确定是否需要调整其他内容或应该如何处理。如果算法在所有地方都在预测,我仍然可以理解,但不确定为什么它仍然偏向多数类。任何指针?
更新:我的意思是大多数预测仍然是针对主要类别的,在测试和训练中大约占 30%

1个回答

这是完全正常的。您应该记住,该模型基本上会学习您的数据(直观地)给出的统计函数,并且由于您的数据是倾斜的,它将由多数类学习。

为了克服这个问题,您可以使用两种方法来处理数据集的不平衡特征:采样成本敏感学习基本上,在采样技术中,我们有欠采样和过采样,也就是说,我们可以减少我们的数据集以平衡数据或使用人工方法增加它。一些例子:

  • 随机过采样:本质上,这种技术通过随机采样来增加少数类。
  • SMOTE:随机过采样存在过拟合问题,因为我们只是在大量复制数据。为了克服这个问题,smote 以一种简化的方式在特征空间上为少数类中的最近邻插入点。

对于欠采样技术:

  • 随机欠采样:此方法对多数类进行简单欠采样。我们可以丢失信息,但如果点很接近,它可以给出很好的结果

  • NearMiss:以一种简化的方式,该模型选择最接近少数类的点。

在成本敏感的学习技术中,我们使用成本矩阵“惩罚”模型,将错误分数分配给特定类别。例如,假设您想为 C1 类提供更好的结果,您可以创建一个矩阵,其中 C1 的错误分类高于其他类。

在 python 中,我们有两个优秀的库来处理这个问题:

他们有关于该主题的优秀教程,因此您可以更深入地了解所讨论的方法和其他方法。我希望它有所帮助。