Weka:分类器和ReplaceMissingValues

时间:2013-04-12 18:12:39

标签: data-mining weka

我对数据挖掘领域比较陌生,并且一直在试验Weka。

我有一个数据集,其中包含近8000条与客户及其购买商品相关的记录。 58%的数据集缺少“性别”属性的值。

我希望根据我拥有的其他数据找到缺少的性别值。

我首先想到我可以使用Weka中的分类器算法使用训练集来构建模型。根据我在网上看到的例子,我尝试使用Weka中提供的几乎所有可用算法,使用由60-80%没有缺失值的数据组成的训练集。这给了我比我想要的更低的准确率(80-86%,取决于所使用的算法)

我是否正确地解决了这个问题?有没有办法提高这种准确性?我尝试使用不同的属性,不同的数据预处理等。

我还尝试在完整数据集上使用ReplaceMissingValues过滤器来查看它将如何处理缺失值。但是,它只是将所有缺失值更改为“女性”,显然不是这种情况。所以我想知道我是否需要在我的情况下使用这个过滤器。

1 个答案:

答案 0 :(得分:2)

听起来你是以正确的方式去做的。 ReplaceMissingValues过滤器会将缺失值替换为我认为最常见的非缺失值,因此在这种情况下不是您想要的。

更好地了解性别预测器的真实准确性的方法是使用交叉验证而不是训练/测试分割(Weka有一个单独的选项)。 80-86%可能看起来很低,但请记住,随机猜测只会让你达到50%左右,所以它仍然比那更好。要尝试获得更好的性能,请选择性能良好的分类器,然后使用其参数,直到获得更好的性能。这可能是非常耗费人力的(尽管您当然可以使用自动化方法进行调整,例如Auto-WEKA),但这是提高性能的唯一方法。

您还可以将您选择的算法与单独的特征选择步骤相结合(Weka有一个特殊的元分类器)。这可能会提高性能,但您必须再次尝试找到适合您的特定配置。