预测 svm 中的多类

Posted

技术标签:

【中文标题】预测 svm 中的多类【英文标题】:Predict multi class in svm 【发布时间】:2019-07-06 23:34:11 【问题描述】:

我有类似的用户评论数据集

review-1, 0,1,1,0,0

review-1 是用户评论,0,1,1,0,0 是评论类别。一篇评论可以有多个类别。我想预测评论的类别。所以我实现了代码

transformer = TfidfVectorizer(lowercase=True, stop_words=stop, max_features=500)
X = transformer.fit_transform(df.Review)

X_train, X_test, y_train, y_test = train_test_split(X, df.iloc[:, 1:6],
                                                test_size=0.25, random_state=42)

SVM = svm.SVC()
SVM.fit(X_train, y_train)

但是我遇到了类似的错误

ValueError: bad input shape (75, 5)

谁能提出任何好的解决方案来解决这个问题?

【问题讨论】:

请查看文档scikit-learn.org/stable/modules/generated/…。 SVC 不支持多标签分类。 【参考方案1】:

您可以使用二元分类器(如svm.SVC())来解决使用OneVsRestClassifier 的多标签分类问题。

示例:

from sklearn.multiclass import OneVsRestClassifier

from sklearn.svm import SVC

cls = OneVsRestClassifier(estimator=SVC(gamma ='auto'))

import numpy as np
cls.fit(np.random.rand(20,10),np.random.binomial(1,0.2,size=(20,5)))

【讨论】:

以上是关于预测 svm 中的多类的主要内容,如果未能解决你的问题,请参考以下文章

sklearn中的多类概率标签数据和同类型预测用啥?

matlab中用svm如何做多类别分类(R2013a)?

Matlab:使用 SVM 对多类分类问题进行预测

Matlab:使用SVM对多类分类问题进行预测

如何使用 libsvm 计算多类预测的概率?

H2O randomForest中的多类分类