Python 使用scikit学习的多标签文本分类,使用哪些分类器?

Python 使用scikit学习的多标签文本分类,使用哪些分类器?,python,scikit-learn,classification,text-classification,Python,Scikit Learn,Classification,Text Classification,我已经使用scikit learn Python库完成了文本分类,导入了以下分类器: from sklearn.linear_model import RidgeClassifier from sklearn.svm import LinearSVC from sklearn.linear_model import SGDClassifier from sklearn.linear_model import Perceptron from sklearn.linear_model import

我已经使用scikit learn Python库完成了文本分类,导入了以下分类器:

from sklearn.linear_model import RidgeClassifier
from sklearn.svm import LinearSVC
from sklearn.linear_model import SGDClassifier
from sklearn.linear_model import Perceptron
from sklearn.linear_model import PassiveAggressiveClassifier
from sklearn.naive_bayes import BernoulliNB, MultinomialNB
from sklearn.neighbors import KNeighborsClassifier
from sklearn.neighbors import NearestCentroid
from sklearn.ensemble import RandomForestClassifier
输入文本的格式为:

('some text 1', 'class1')
('some text 2', 'class2')
('some text 3', 'class3')
...
一切都很好。但我想知道的是,我是否有多标签文本,如:

('some text 1', 'class1', 'class3')
('some text 2', 'class2', 'class1')
('some text 3', 'class3')
...

如果可以使用这些分类器,或者我应该使用其他分类器吗?

所有能够执行多类或多标签操作的分类器都会被引用

基于此,只有两个型号可以直接用作多标签:

  • 随机分类器
  • Kneighbors分级机
在我所做的(在练习中)之后,就是将OneVsAll与另一个兼容的分类器一起使用,然后提取前N个或X%以上的所有标签(标签越多,阈值越低,因为总和等于1)。这不是你能做的最干净的事情,但它是有效的(我将它与多标签分类器结果进行了比较,结果非常接近或相同)

我希望有帮助,
尼古拉斯

谢谢你非常简洁的回答,我会尝试你建议的方法。只是一个问题:多类多输出是唯一一个可以用于多标签分类的输出?由于其他类似乎用于多类,但没有多标签输出,这是否会造成差异多类多标签输出与简单多标签不同。例如,如果你想用多标签对一顿饭进行分类,你可能会吃(咸的:是/否,好的:是/否,热的:是/否)。使用多类多输出,您可能会有(味道:甜/咸/酸,好:有味道/正确/坏/可怕,…)。如果标签是二进制的,则可以使用“支持多标签”或“支持多类多输出”。你可以有几个输出,只支持多类多输出。但每次都可以通过在所有解决方案上执行一个热编码器将多输出转换为多标签