我有一个用户评论数据集,如下所示:
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)
有谁能提供解决这个问题的有效方法吗?
回答:
您可以使用二分类器(如 svm.SVC()
)通过 OneVsRestClassifier
来解决多标签分类问题。
示例:
from sklearn.multiclass import OneVsRestClassifierfrom sklearn.svm import SVCcls = OneVsRestClassifier(estimator=SVC(gamma ='auto'))import numpy as npcls.fit(np.random.rand(20,10),np.random.binomial(1,0.2,size=(20,5)))