Weka:分类器和 ReplaceMissingValues

Posted

技术标签:

【中文标题】Weka:分类器和 ReplaceMissingValues【英文标题】:Weka: Classifier and ReplaceMissingValues 【发布时间】:2013-04-05 09:08:37 【问题描述】:

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

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

我想根据我拥有的其他数据找到缺失的性别值。

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

我做对了吗?有没有办法提高这种准确性?我尝试使用不同的属性、不同的数据预处理等。

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

【问题讨论】:

【参考方案1】:

听起来您以正确的方式进行操作。 ReplaceMissingValues 过滤器用我认为最常见的非缺失值替换缺失值,所以在这种情况下它不是你想要的。

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

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

【讨论】:

以上是关于Weka:分类器和 ReplaceMissingValues的主要内容,如果未能解决你的问题,请参考以下文章

Weka 过滤分类器 arrayOutOfBoundsException

kNN 是统计分类器吗?

在 MOA 中使用我的 weka 分类器

WEKA - 多类分类 - 找不到名为:weka.classifiers.functions.supportVector.RegSMOImproved 的类

Weka中的实例分类

Weka 常用分类算法效果比较