5

我目前正在努力解决机器学习问题,而我必须处理大量不平衡的数据集。也就是说,有六个类('1','2'...'6')。不幸的是,例如“1”类有 150 个示例/实例,“2”类有 90 个实例,“3”类只有 20 个。所有其他类都不能“训练”,因为这些类没有可用的实例。

到目前为止,我发现 WEKA(我正在使用的机器学习工具包)提供了这种有监督的“重采样”过滤器。当我使用 'noReplacement'=false 和 'bialToUniformClass'=1.0 应用此过滤器时,这会产生一个数据集,其中实例的数量很好并且几乎相等(对于类 '1'..'3' 和其他留空)。

我现在的问题是:WEKA 和这个过滤器如何为不同的类生成“新”/附加实例。

非常感谢您提前提供任何提示或建议。

干杯朱利安

4

3 回答 3

2

使用 WEKA 的监督重采样过滤器将实例添加到类中。这通过简单地将只有少数实例的类中的实例多次添加到结果数据集中来实现。

因此,结果数据集在一个只有少数样本可用的类别方面存在很大偏差。

于 2009-12-09T19:09:15.510 回答
2

它没有。它正在对现有实例进行重新采样。如果您有一个 2 类实例,并要求以 1.0 的偏差进行重采样,则您可以预期该实例的 N 个副本以及已经存在数据的其他类型的 N 个其他实例。

于 2010-02-11T06:41:36.017 回答
1

尝试在预处理中使用SMOTE过滤器。

它通过为次要类生成新数据来平衡您的数据集。

于 2014-12-08T23:34:22.693 回答