用高度偏向的数据集训练树组合有什么意义?


14

我有一个高度偏向的二进制数据集-否定类的示例比肯定类多1000倍。我想在此数据上训练树合奏(例如超随机树或随机森林),但是很难创建包含足够的正类示例的训练数据集。

采取分层抽样方法以规范阳性和阴性样本数量的含义是什么?换句话说,例如人为地增加(通过重采样)训练集中肯定的班级示例的数量是一个坏主意吗?

Answers:


10

是的,这是有问题的。如果对少数族群进行过采样,则可能会出现过度拟合的风险。如果对多数抽样不足,则可能会错过多数类的某些方面。分层抽样btw等效于分配非均匀错误分类成本。

备择方案:

(1)如@Debasis的答案所建议并在此EasyEnsemble论文中所述,通过将每个子集与所有少数派类别数据组合在一起,从多数类别中独立采样几个子集,并进行多个分类,

(2)SMOTE(综合少数族裔过采样技术)SMOTEBoost(将SMOTE与Boosting结合使用)通过在特征空间中建立最接近的邻居来创建少数类的综合实例。SMOTEDMwR软件包的 R中实现。


11

我建议您对数据的更平衡子集进行培训。在具有相似数量的阴性样本的一组随机选择的阳性实例上训练随机森林。特别是,如果区别特征表现出很大的差异,这将是相当有效的,并且可以避免过度拟合。但是,在分层过程中,重要的是要找到平衡,因为过度拟合可能成为问题。我建议您看一下该模型如何处理整个数据集,然后逐步增加正样本与负样本的比率,使之接近偶数比率,并选择一个在某些代表性数据上最大化性能指标的样本。

本文似乎颇为相关,http: //statistics.berkeley.edu/sites/default/files/tech-reports/666.pdf讨论了weighted Random Forest哪一个会更严厉地惩罚少数群体的错误分类。


4

解决这种失衡的一种快速,简便且通常有效的方法是,对较大的类(在您的情况下为负类)进行随机子采样,对两个类的成员进行一次N次分类(一次完整,另一次进行二次抽样)并报告平均值指标值,该平均值是在N次(例如1000次)迭代中计算得出的。

一种更有条理的方法是执行映射收敛(MC)算法,该算法包括借助一类分类器(例如OSVM或SVDD)识别强负样本的子集,然后在集合上迭代执行二进制分类强阴性和阳性样本。MC算法的更多细节可以在本文中找到。


0

如上所述,最好的方法是重复对大多数类别进行N次采样(不替换而进行采样),并且每次,否定类别的大小应等于肯定类别的大小。现在,可以训练N个不同的分类器,并且可以使用平均值进行评估。

另一种方法是使用引导技术。这可能会引入过度拟合,但是值得尝试,如果需要的话可以对模型进行正则化以避免过度拟合。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.