WEKA - 过滤掉 MultiClassClassifer 中的类

Posted

技术标签:

【中文标题】WEKA - 过滤掉 MultiClassClassifer 中的类【英文标题】:WEKA - filtering out classes in a MultiClassClassifer 【发布时间】:2016-06-24 10:28:33 【问题描述】:

我已经训练了一个MultiClassClassifier(经过测试,工作正常)并将其保存在我的硬盘驱动器的某个位置。现在我想对我得到的一个新样本进行预测。我加载我的应用程序,我的分类器自动加载它。在分类过程之外,我已经将样本的搜索范围缩小到五个 5 个可能的类别。这意味着,我知道k 类,可以在分类中轻松避免。

是否可以在使用之前过滤 MultiClassClassifier(过滤掉所有不需要的类)?

如果是? Weka 方法可以用于此目的吗? 如果没有,是否有改动。解决办法?

我想通过将关注范围缩小到 n 类中的 5 个类来提高分类器的准确性。

我找到了如何过滤Instances 对象,但似乎找不到适合MultiClassClassifer 的方法。

我要操作的数据是/是我的测试Instances 和我的MultiClassClassifier

提前谢谢你。

【问题讨论】:

【参考方案1】:

实际上并没有办法修改现有的 MultiClassClassifier 以排除类。但是,根据您使用的基础分类器,您可以尝试使用.distributionForInstance,它会输出一个置信度分数向量,每个类别一个。然后,您可以选择得分最高的课程,忽略不在目标集中的课程的分数。

【讨论】:

感谢您的快速响应。我正在使用 MultiClassClassifier 并启用了选项 SMO 和逻辑模型 (-M) 拟合。 它应该可以工作 - 我之前使用了带有 SMO MultiClassClassifier 的 distributionForInstance 并且它可以工作。试一试。 到时一定会试一试的。将尽快报告。谢谢。 我已经对其进行了编码,它看起来真的很脏。忽略分布,尤其是数字在k 类之间平均分布的情况有点讨厌。例如,我有一个样本有 20% 分布到正确分类的类别。如此低的分布确实表明对分类程序的怀疑。确实应该有一种过滤分类器的方法,因此distributionForInstance 方法可以在这些情况下正确使用。再次感谢您的时间和解释。将密切关注更多解决方案。希望有一天,会有人解决这个烂摊子。

以上是关于WEKA - 过滤掉 MultiClassClassifer 中的类的主要内容,如果未能解决你的问题,请参考以下文章

WEKA:如何过滤多个属性范围?

Weka 过滤器导致数据丢失

Weka java扩展子样本过滤器

Weka 过滤分类器 arrayOutOfBoundsException

Weka 添加多个 Meta 过滤分类器

我需要在 weka 中制作一个 SVM 来使用 Java 过滤文档