高度不平衡数据集(XGBoost)中使用的负样本数量的影响

The impact of number of negative samples used in a highly imbalanced dataset (XGBoost)

我正在尝试在高度不平衡的数据集上使用 XGBoost 对分类器建模,其中正样本数量有限,负样本数量几乎无限。 负样本过多(使数据集更加不平衡)是否会削弱模型的预测能力?除了 运行 时间之外,是否有理由限制负样本的数量?

我知道 scale_pos_weight 参数应该可以解决这个问题,但我的直觉告诉我即使这种方法也有其局限性。

直接回答你的问题:添加更多的反例可能会降低受过训练的 classifier 的决策能力。对于负数 class 选择最有代表性的例子并丢弃其余的。

从不平衡的数据集中学习会影响预测能力,甚至会影响 classifier 的收敛能力。通常推荐的策略是为每个 classes 保持相似大小的训练示例。 classes 的不平衡对学习的影响取决于决策的形状 space 和 classes 之间的边界宽度。它们越宽,决策越简单 space 即使对于不平衡的数据集,训练也越成功。

TL;DR

为了快速了解不平衡学习的方法,我推荐这两篇文章:

有一个名为 imbalanced-learn 的 Python 程序包,其中包含大量算法文档,我建议对其进行深入审查。