如何在weka SMO分类器中实现多类分类?

时间:2012-08-24 10:31:06

标签: machine-learning weka smo

我正在使用weka进行分类。在weka中,我使用SMO对文档进行分类。在某些情况下,SMO会返回错误的类别。

例如,取2类计算机和板球。首先我训练并创建了这两个类别的模型。然后我将测试一个文件,其内容与50:50比例的两个类别相关。 SMO仅返回第一类计算机。如果50:50比率意味着我需要返回两个类别。

如何在SMO分类器中实现Multiclass classification

2 个答案:

答案 0 :(得分:1)

通常,分类器会给出一个结果。根据我的理解你的问题,你需要distributionForInstance。此方法将为您提供类的概率。在你的例子中,你应该获得1/2和1/2的概率。

你提到

  

是的,从那种方法来看,我的概率是错误的。对于计算机类,我得到0.63和板球0.36。但两个类别的内容和单词数量相等

您的解释问题是您希望类概率仅来自内容和单词数量。例如,对于朴素贝叶斯而言,这是正确的,但对于其他分类器则不是这样。如果您尝试使用朴素贝叶斯进行相同的分类,您可能会看到预期的概率。

根据SVM中的支持向量给出您的类概率。这意味着根据支持向量,你的0.63概率类更有可能。

答案 1 :(得分:0)

我知道人们可能会使用不同的术语,但您最常接受的术语是“多标签分类”(https://en.wikipedia.org/wiki/Multi-label_classification)。

我认为提及多类分类的维基百科文章写得不正确,或者是使用类似方法的不同域名的术语。

多类分类通常意味着将数据点分类为可能的多个(> 2)类中的仅一个,而不是多标记分类,这意味着对数据点进行分类进入超过1 的可能类。

您可以查看Meka - Weka的扩展,其中实现了一些多标记分类器。我知道你想使用weka,但如果没有,你可以试试multilabel libsvm.