SVM = svm.SVC(C=1.0, kernel='linear', degree=3, gamma='auto')
SVM.fit(Train_X_Tfidf,Train_Y)
predictions_SVM = SVM.predict(Test_X_Tfidf)
print("SVM Accuracy Score -> ",accuracy_score(predictions_SVM, Test_Y)*100)
而Error : 1 SVM = svm.SVC(C=1.0, kernel='线性', degree=3, gamma='auto') ----> 2 SVM.fit(Train_X_Tfidf,Train_Y) 3 # 预测验证数据集上的标签 4 predictions_SVM = SVM.predict(Test_X_Tfidf) 5 # 使用accounteracy_score函数获得准确度
1帧 usrlocallibpython3.6dist-packagessklearnsvm_base.py in _validate_targets(self, y) 529 raise ValueError( 530 "类的数量必须大于1;得到了%d" --> 531 " class" % len(cls)) 532 533 self.classes_ = cls
ValueError: 类的数量必须大于1;得到1个类。
如何解决这个问题?
这意味着你的训练数据中只有一个类。这就是内部代码在 fit
办法
self.classes_ = np.unique(y)
然后它通过检查是否有少于2个类来验证它。您可以通过以下操作来确认 np.unique(Train_Y)