我有一个非常大的数据集,具有6000万行和11个功能。 它是高度不平衡的数据集,比例为20:1(信号:背景)。 如我所见,有两种方法可以解决此问题:
首先:欠采样/过采样。
这样我有两个问题。
如果在火车测试拆分之前进行欠采样,则将丢失很多数据。
但更重要的是,如果我在平衡的数据集上训练模型,则会丢失有关信号数据频率的信息(比方说,良性肿瘤的发生率高于恶性肿瘤的频率),并且由于对模型进行了训练和评估,因此模型将表现良好。但是,如果将来某个时候我要在新数据上尝试我的模型,由于实际数据不平衡,它将导致性能下降。
如果我在火车测试拆分后进行了欠采样,则我的模型将不适合,因为它将在平衡数据上进行训练,但在不平衡上进行验证/测试。
第二-班级体重减轻 我可以对XBG,随机森林,逻辑回归使用类权重惩罚吗?
因此,每个人都在寻找一种解释和想法,以解决这种问题。
预先谢谢您,我将不胜感激。
答案 0 :(得分:1)
我建议Breiman(《随机森林》的作者)撰写的这篇简短论文: Using Random Forest to Learn Imbalanced Data
建议的方法是加权RF,其中您可以使用加权Gini(或熵,我认为加权时更好)来计算拆分,以及平衡随机森林,您可以在引导过程中尝试平衡类。
这两种方法也可以用于增强树!
答案 1 :(得分:1)
建议的方法之一可能是使用综合少数族裔过采样技术(SMOTE),该技术试图通过创建综合实例来平衡数据集。并使用任何分类算法训练平衡数据集。
要比较多个模型,可以使用 ROC曲线下的面积(AUC分数)确定哪个模型更好。
此guide可以为您提供一些有关可用于比较和解决不平衡问题的不同方法的想法。
答案 2 :(得分:0)