【发布时间】:2019-07-26 13:46:01
【问题描述】:
我正在尝试使用 XGBoost 在高度不平衡的数据集上对分类器进行建模,其中正样本数量有限,负样本数量实际上是无限的。 是否有太多的负样本(使数据集更加不平衡)会削弱模型的预测能力?除了运行时间之外,是否有理由限制负样本的数量?
我知道scale_pos_weight 参数应该可以解决这个问题,但我的直觉说即使这种方法也有其局限性。
【问题讨论】:
我正在尝试使用 XGBoost 在高度不平衡的数据集上对分类器进行建模,其中正样本数量有限,负样本数量实际上是无限的。 是否有太多的负样本(使数据集更加不平衡)会削弱模型的预测能力?除了运行时间之外,是否有理由限制负样本的数量?
我知道scale_pos_weight 参数应该可以解决这个问题,但我的直觉说即使这种方法也有其局限性。
【问题讨论】:
直接回答您的问题:添加更多负面示例可能会降低经过训练的分类器的决策能力。对于负类,选择最具代表性的例子并丢弃其余的。
从不平衡的数据集中学习会影响预测能力,甚至影响分类器的收敛能力。通常推荐的策略是为每个类保持相似大小的训练示例。类别不平衡对学习的影响取决于决策空间的形状和类别之间的边界宽度。它们越宽,决策空间越简单,即使对于不平衡的数据集,训练就越成功。
TL;DR
为了快速了解不平衡学习的方法,我推荐以下两篇文章:
有一个名为 imbalanced-learn 的 Python 包,其中包含大量算法文档,我建议您进行深入审查。
【讨论】: