在制作预测模型时(特别是关于流失的电信),在训练集中的类之间进行1:1分割是必不可少的(实际分布更像是1:50)?在阅读其他人所做的事情时,似乎就是这种情况。但他们并没有将其作为一项要求。推荐什么?
答案 0 :(得分:0)
您的问题通常被称为“类不平衡”。是否以及如何影响结果取决于您使用的算法和评估指标。例如,逻辑回归算法和模型精度可能非常容易受到这个问题的影响。另一方面,简单的包络模型和模型AUC对于类不平衡更具弹性。我知道有五种可能的方法可以解决这个问题:
1)上采样:基本上人为增加稀有类的数量。当您的数据非常少但您确信它能够代表更广泛的人群时,这可能是首选解决方案。
2)羽绒采样:只留下丰富班级的一部分。当您拥有大量数据时,这是一个选项。
3)加权:告诉你的算法更加重视从稀有类中获得的信息。
4)Bagging:在这里,您随机对数据进行二次采样,并将“弱”学习者拟合到每个子样本中。之后,这些弱势学习者被汇总以创建一个最终预测。
5)提升:与装袋类似,但每个“弱”学习者对先前装配的学习者不是不可知的。相反,他们从最新的合奏中获取残差。
有一个really nice article here详细介绍了这些内容,包括python
中的一些实用示例和another one here,其中更多关注class Foo {
private:
Bar myBar;
public:
Bar &getBar() { return myBar; };
};