gpt4 book ai didi

python - LIBSVM 的多类表示

转载 作者:行者123 更新时间:2023-11-30 09:56:03 25 4
gpt4 key购买 nike

我的目标是制作一个多类分类器,用于处理不同的文件,这些文件将标记至少两个类(或标签)。这些文件是议会倡议的,因此每个文件都将在同义词库中以至少一对值进行索引。

我在Python版本中使用“libsvm”,因为在Python中删除停用词、标记化和词干似乎更容易做到,这要归功于Snowball、NLTK等工具......

该版本无法直接使用多分类
但是,可以对多类分类器模型进行编程,生成总共 k * (k-1)/2(其中“k”是类数)。

LIBSVM 的表示是:

<class/target>[ <attribute number>:<attribute value>]*   

那么对于一个有 5 个类的文件,我应该生成前一行的 5 倍,只更改类吗?

例如:

1 1: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….

感谢和问候。

最佳答案

你很困惑

  • 多类场景 - 通常有 2 个以上的类,但每个对象都被分配恰好一个
  • 多标签场景 - 为每个对象分配多个标签

SVM 在其基本公式/实现中无法实现上述任一功能。虽然这两个问题都可以很容易地分解。

第一个通常使用一对一或一对一的方式来实现,两者都在 scikit-learn 中实现,其中 Python 绑定(bind)到 libsvm。

你的场景看起来很像多标签,在这种情况下,基本的支持向量机可以通过将你的问题拆分为K个独立的问题来使用,只需创建K个不同的训练集,每个人都回答问题“给定的文件有标签 i 吗?”并训练 K 个不同的 SVM,每个只给你一点答案(我们假设标记过程是独立的,这是一种简化,但其他方法需要结构 SVM 方法,如 svmstruct 中提供的方法)。

无法为多标签分类创建单个 libsvm 训练文件。您引用的文档引用的是多类,这不是您的情况,并且只需要使用K个不同的标签名称,而不是复制行。

关于python - LIBSVM 的多类表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29791997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com