如何在WEKA中设置参数以使用SMOTE过滤器平衡数据?

时间:2014-03-25 11:16:35

标签: data-mining weka sample-data

我在WEKA中使用SMOTE过滤器来平衡数据 我对这两个参数nearestNeighborspercentage有疑问。

nearestNeighbors - 要使用的最近邻居数 percentage - 要创建的SMOTE实例的百分比。

我应该如何设置它们?

我认为邻居的数量是它要创建的同步样本的数量 那么百分比的含义是什么?它应该小于或等于邻居的数量,对吧?是否考虑了合成样本的百分比?

例如:
如果我把10个邻居和200%会发生什么? 谁能给我一些正确使用的例子?

2 个答案:

答案 0 :(得分:5)

nearestNeighbors参数表示使用多少个最近邻居实例(当前考虑的实例周围)来构建inbetween合成实例。默认值为5.因此,实际现有实例的5个最近邻居的属性用于计算新的合成实例。

percentage参数表示根据具有较少实例的类的数量创建了多少个合成实例(默认情况下,您也可以通过设置-C选项来使用多数类)。默认值为100.这意味着如果您的少数类中有25个实例,则再次从这些实例中创建25个实例(使用它们最近邻居的值)。创建了200%的50个合成实例,依此类推。

有关详细信息,请参阅weka doc of SMOTEoriginal paper of Chawla et al. 2002,其中深入介绍了整个方法。

对我而言,Weka SMOTE似乎只对实例进行过采样。因此,您可以使用受监督的SpreadSubsample过滤器,然后对少数群体类实例进行欠采样。

答案 1 :(得分:1)

如果你有两个类,并希望每个类中的数字相等,则需要将大类中的样本数除以较小类中的样本数。取其中的小数部分并乘以100.这是你的P参数。