Text weka中的一元类文本分类?

Text weka中的一元类文本分类?,text,machine-learning,classification,weka,svm,Text,Machine Learning,Classification,Weka,Svm,我有一个特定类别(比如癌症)的训练数据集(文本)。我想在weka中为这个类训练一个SVM分类器。但是,当我试图创建一个文件夹“cancer”并将所有培训文件放入该文件夹时,当我运行代码时,我会出现以下错误: weka.classifiers.functions.SMO:无法处理一元类 我想做的是,如果分类器发现一个与“癌症”相关的文档,它会正确地显示类名,一旦我输入了一个非癌症文档,它就会显示类似“未知”的内容 我应该怎么做才能得到这种行为 Weka中的SMO算法只在两个类之间进行二元分类。序列

我有一个特定类别(比如癌症)的训练数据集(文本)。我想在weka中为这个类训练一个SVM分类器。但是,当我试图创建一个文件夹“cancer”并将所有培训文件放入该文件夹时,当我运行代码时,我会出现以下错误: weka.classifiers.functions.SMO:无法处理一元类

我想做的是,如果分类器发现一个与“癌症”相关的文档,它会正确地显示类名,一旦我输入了一个非癌症文档,它就会显示类似“未知”的内容


我应该怎么做才能得到这种行为

Weka中的SMO算法只在两个类之间进行二元分类。序列最小优化是求解支持向量机的一种特定算法,在Weka中,它是该算法的基本实现。如果你有一些例子是癌症和一些不是,那么这将是二进制的,也许你没有正确地标记它们

但是,如果您使用的是所有癌症示例的训练数据,并且您希望它告诉您未来的示例是否符合模式,那么您正在尝试执行一类SVM,即异常值检测


可以处理一类svm。与Weka SMO实现不同,它是一个独立的程序,已连接到Weka中,并包含许多不同的SVM变体。在Wekalist上解释了如何在Weka中使用LibSVM。

感谢您的回答。我让它工作了。如果我只想确定有多少文档与癌症(一个类别)相关,那么拥有两个集合(比如癌症和非癌症)与进行二元分类、拥有一个集合(只有癌症)与进行一个类别分类有什么区别?区别在于你是否有负面的例子。如果你有100个癌症的例子和100个非癌症的例子,那就是两类,癌症和非癌症。若你们只有100个健康的例子,想知道是否有异常,那个么这是一节课。我在Weka用LibSVM做了一节课的训练。但问题是在测试过程中,所有的测试实例都被分类到我在培训中使用的类中,它并没有说至少有一个实例不相关,我确信测试实例与该类完全不相关。这可能是什么原因?您是否进行了参数调整?支持向量机对其参数非常敏感,它不是“现成”的解决方案。来自libsvm的这篇文档是一个很好的介绍:还有两件事需要检查——如果您有两个类,那么培训文件是否包含class属性和/或两个类的示例?如果你选择了一个类SVM并只给它一个两个类的文件,它可能会把类变量看作是一个属性,并把它包含在模型中,在这种情况下,如果你给它提供任何属性,那么它就会把它看作是类的一部分。