weka上的smote和欠采样的组合

时间:2015-01-14 17:00:00

标签: dataset classification data-mining

根据chawla等人撰写的论文(2002) 平衡数据的最佳性能是将欠采样与SMOTE相结合。

我尝试使用欠采样和SMOTE组合我的数据集, 但我对欠采样的属性有点混淆。

在weka中有Resample来减少多数班级。 Resample中有一个属性 biasToUniformClass - 是否对统一类使用偏差。值为0会使类分布保持原样,值为1可确保输出数据中的类分布均匀。

我使用值0并且多数类中的数据已经减少,因此少数族群会这样做,当我使用值1时,数据大部分会减少,但在少数类中,数据会增加。

我尝试将值1用于该属性,但我不使用smote来增加少数群体类的实例,因为数据已经达到平衡且结果也很好。

那么,是否与我合并SMOTE和欠采样相同,或者我仍然必须在该属性中尝试使用值0并执行SMOTE?

1 个答案:

答案 0 :(得分:2)

对于欠采样,请参阅EasyEnsemble算法(a Weka implementation was developed by Schubach, Robinson, and Valentini)。

EasyEnsemble算法允许您将数据拆分为一定数量的平衡分区。要实现此平衡,请将numIterations参数设置为:

多数实例数)/(#少数群体实例)= 数字

例如,如果总共有30个实例,其中20个在多数类中,10个在少数类中,则将numIterations参数设置为2(即,20个多数实例/ 10个实例等于2个平衡分区)。这两个分区应各包含20个实例;每个实例都有相同的10个少数派实例,以及与大多数类不同的10个实例。

然后算法训练每个平衡分区上的分类器, 并且在测试时,合并在每个平衡分区上训练的一批分类器以进行预测。