我有一个非常大的数据集,具有6000万行和11个功能。
它是高度不平衡的数据集,比例为20:1(信号:背景)。
如我所见,有两种方法可以解决此问题:
第一:欠采样/过采样。
这样我有两个问题。
如果我在火车测试拆分之前进行了欠采样,则会丢失很多数据。
但更重要的是,如果我在平衡的数据集上训练模型,则会丢失有关信号数据频率的信息(比方说,良性肿瘤的发生率高于恶性肿瘤的频率),并且由于对模型进行了训练和评估,因此模型会表现良好。但是,如果将来某个时候我要在新数据上尝试我的模型,由于实际数据不平衡,它将导致性能下降。
如果我在火车测试拆分后进行了欠采样,则我的模型将不适合,因为它将在平衡数据上进行训练,但在不平衡上进行验证/测试。
二级体重惩罚
我可以对XBG,随机森林,逻辑回归使用类权重惩罚吗?
所以,每个人,我都在寻找一种解释和想法,以解决这种问题。
预先谢谢您,我将不胜感激。
最佳答案
我建议Breiman(《随机森林》的作者)撰写的这篇简短论文:
Using Random Forest to Learn Imbalanced Data
建议的方法是加权RF,其中您使用加权Gini(或熵,我认为加权时更好)来计算拆分,以及平衡随机森林,您尝试在引导过程中平衡类。
两种方法也可以用于增强树!
关于python - 处理高度不平衡数据的正确方法-二进制分类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59409967/