weka上的smote和欠采样的组合

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了weka上的smote和欠采样的组合相关的知识,希望对你有一定的参考价值。

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

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

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

我使用值0并且多数类中的数据是向下的,所以少数人做了,当我使用值1时,数据大多数减少但在少数类中,数据是向上的。

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

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

答案

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

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

(多数实例的数量)/(#prium instances)= numIterations

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

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

以上是关于weka上的smote和欠采样的组合的主要内容,如果未能解决你的问题,请参考以下文章

1.7 非平衡数据的处理方法大全

Python 过采样在管道中组合了多个采样器

如何在交叉验证和 GridSearchCV 中实现 SMOTE

测试折叠上的 CV 和欠采样

[1] 样本不均衡问题及其解决办法

spark实现smote近邻采样