我的目标是制作一个多类分类器,用于处理不同的文件,这些文件将至少使用两个类(或标签)进行标记。这些文件是议会的倡议,因此每个文件都将被编入至少一对值的同义词库中。在
我在python版本中使用'libsvm',因为在python中删除停止字、标记化和词干处理似乎更容易,这要归功于Snowball、NLTK。。。在
此版本不能直接使用多分类
然而,可以编程一个生成总共k*(k-1)/2的多类分类器模型(其中“k”是类的数量)。在
LIBSVM的表示是:
<class/target>[ <attribute number>:<attribute value>]*
那么对于一个包含5个类的文件,我是否应该生成5倍于前一行的只更改类?在
例如:
11:3 2:4 6:5….
2 1:3 2:4 6:5….
3 1:3 2:4 6:5….
4 1:3 2:4 6:5….
5 1:3 2:4 6:5…。在
谢谢和问候。在
你很困惑
支持向量机在其基本公式/实现中不能做到以上任何一种。尽管这两个问题都很容易分解。在
第一种方法通常使用one-vs-all或one-vs-one来实现,这两种方法都是在
scikit-learn
中实现的,其中python绑定到libsvm。在您的场景看起来很像多标签,在这种情况下,通过将问题分解为K个独立的问题,只需创建K个不同的训练集,每个训练集都回答“给定文件是否有标签i?”训练K个不同的支持向量机,每一个简单地给你一个答案(我们假设标记过程是独立的,这是一个简化,但是其他方法需要结构化的支持向量机方法,就像svmstruct中可用的方法)。在
不能为多标签分类创建单个libsvm训练文件。您引用的文档引用的是多类,这不是您的情况,只需要使用K个不同的标签名称,而不是复制行。在
相关问题 更多 >
编程相关推荐