2012-04-20 83 views
1

我正在使用SMOTE过采样我的数据集(受类不平衡影响)。我的一些属性具有整数值,其他的只有两位小数,但SMOTE会创建具有许多小数的新实例。因此,为了解决这个问题,我想使用NumericCleaner过滤器并设置我想要的小数位数。这似乎工作,但我有缺失值的问题。每个缺失的值被替换为0.0值,我需要使用数据集中的缺失值来评估我的模型。那么如何使用NumericCleaner(或其他允许舍入值的过滤器)并保留我的缺失值?数字过滤器和缺失值(Weka)

+0

如果我的答案解决了您的问题,请点击答案旁边的“检查”标记以接受答案。谢谢。 – 2012-04-20 14:43:00

回答

1

非常有趣的问题。好的,这是解决方案:

  1. 使用SMOTE过采样少数组(这产生小数点但缺少的值保持缺失值)
  2. 然后选择WEKA过滤器 - > unsupervised->属性 - > NumericTransform
  3. 然后点击这个过滤器,并设置属性实例(你有小数点功能),并在methodName而不是“abs”,把“ceil”。

我希望能解决这个问题。

+0

太棒了!这适用于需要整数值的属性,但是我可以使用它来设置自定义的小数位数?因为java.lang.math似乎没有一个函数来执行SMOTE的小数值 – 2012-04-20 14:46:30

+0

所需的操作,所以在十进制值之后没有设置确定数量的数字的选项。 – 2012-04-23 00:03:15