3

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

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

我应该如何设置它们?

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

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

4

2 回答 2

6

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

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

有关更多信息,请参阅 SMOTE 的weka 文档和 Chawla 等人的原始论文。2002 年,对整个方法进行了深入的解释。

对我来说,Weka SMOTE 似乎只会对实例进行过度采样。因此,您还可以使用有监督的SpreadSubsample过滤器在之后对少数类实例进行欠采样。

于 2014-05-26T22:03:23.333 回答
1

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

于 2017-11-30T02:29:11.587 回答