【问题标题】:How to set parameters in WEKA to balance data with SMOTE filter?如何在 WEKA 中设置参数以使用 SMOTE 过滤器平衡数据?
【发布时间】:2014-05-03 04:46:01
【问题描述】:

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

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

我应该如何设置它们?

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

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

【问题讨论】:

  • 如果我设置邻居 = 200 和百分比 = 300,我会得到相同数量的合成样本,邻居 = 100 和百分比 = 300。会有区别吗?会不会过拟合?

标签: data-mining weka sample-data


【解决方案1】:

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

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

有关更多信息,请参阅weka doc of SMOTEoriginal paper of Chawla et al. 2002,其中对整个方法进行了深入解释。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 2017-02-10
      • 2021-01-26
      • 2023-03-15
      • 2018-01-14
      相关资源
      最近更新 更多