强过拟合伴随强类不平衡

数据挖掘 xgboost 阶级失衡
2022-03-09 04:34:01

我正在训练一个 xgboost 二进制分类模型。我拥有的数据大约是 600k,而正数仅为其中的 0.1%。我尝试使用 xgboost 提供的所有过拟合预防技术(调整 eta、gamma、min_child_weight、子样本特征/数据、提前停止等)。然而,我的模型要么强烈过拟合,但在测试集上有不错的度量,要么过拟合不太强,但总体性能很差。我在这里列出了两个训练结果(指标是 auc-pr),

曲线下面积 130棵树 3800棵树
火车 0.18 0.98
测试 0.05 0.45
验证(提前停止) 0.06 0.46

我检查了数据泄漏,但似乎没有。我的问题是:

  • 我可以使用具有 3800 棵树的模型,即使它过度拟合,它在测试集上也能获得不错的结果?
  • 对于这种严重的类不平衡情况,我是否必须严格防止过度拟合?如果是这样,其他技术是什么?
  • 我做错什么了吗?
1个回答

对于复杂的数据,很少有过拟合(或欠拟合)的情况。理想情况下,人们希望避免过度拟合,如果在两种模型之间进行选择,使用不会过度拟合的模型显然更安全。但是,如果无法避免,从实践的角度来看,我认为没有理由不使用模型。过拟合模型的问题很简单,就是它在新实例上表现不佳,所以可能发生的最坏情况就是您在测试集上观察到的性能。

只是一个想法:我不知道它是否对您的数据有意义,但可能值得尝试对少数类进行一类分类。这可能是避免不平衡问题的一种方法,随后可以进行常规二元分类的第二阶段。