我有一个非常大的数据集,包含 6000 万行和 11 个特征。 它是高度不平衡的数据集,20:1(信号:背景)。 正如我所看到的,有两种方法可以解决这个问题:
第一:欠采样/过采样。
我这样有两个问题。
如果我在训练测试分割之前进行欠采样,我会丢失大量数据。
但更重要的是,如果我在平衡数据集上训练模型,我会丢失有关信号数据频率的信息(比如说良性肿瘤相对于恶性肿瘤的频率),并且由于模型经过训练和评估,模型将表现良好。但如果将来的某个时候我要在新数据上尝试我的模型,它的性能会很差,因为实际数据不平衡。
如果我在训练测试分割后进行欠采样,我的模型将欠拟合,因为它将在平衡数据上进行训练,但在不平衡数据上进行验证/测试。
二级体重处罚 我可以对 XBG、随机森林、逻辑回归使用类别权重惩罚吗?
所以,大家,我正在寻找解决此类问题的解释和想法。
预先感谢您,我将非常感谢您的帮助。
最佳答案
我推荐 Breiman(《随机森林》的作者)撰写的这篇快速论文: Using Random Forest to Learn Imbalanced Data
建议的方法是加权 RF,其中您使用加权基尼(或熵,在我看来加权时更好)计算分割,以及平衡随机森林,您尝试在引导过程中平衡类。
这两种方法也可以用于提升树!
关于python - 处理高度不平衡数据的正确方法——二元分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59409967/