我试图在高度不平衡的数据集上使用XGBoost对分类器进行建模,其中包含有限数量的正样本和几乎无限数量的负样本。是否可能有太多负面样本(使数据集更加不平衡)会削弱模型的预测能力?除了运行时间之外,是否有理由限制负样品的数量?
我知道scale_pos_weight
参数应该解决这个问题但我的直觉说即使这种方法有其局限性。
要直接回答您的问题:添加更多负面示例可能会降低受过训练的分类器的决策能力。对于否定类,请选择最具代表性的示例并丢弃其余部分。
从不平衡数据集中学习可以影响预测能力,甚至可以影响分类器的收敛能力。通常建议的策略是每个类保持相似大小的训练样例。类不平衡对学习的影响取决于决策空间的形状和类之间边界的宽度。它们越宽,决策空间越简单,即使对于不平衡的数据集,训练也越成功。
TL; DR
为了快速了解不平衡学习的方法,我推荐这两篇文章:
有一个名为Learning from Imbalanced Data的Python软件包,它有一个广泛的算法文档,我建议深入研究。