我看过类似的问题,例如this one。但是在我的情况下,没有提到的解决方案有效。
我正在尝试建立文本分类预测模型。
def train_model(classifier, feature_vector_train, label, feature_vector_valid, is_neural_net=False):
# fit the training dataset on the classifier
classifier.fit(feature_vector_train, label)
# predict the labels on validation dataset
predictions = classifier.predict(feature_vector_valid)
if is_neural_net:
predictions = predictions.argmax(axis=-1)
return metrics.accuracy_score(predictions, train_label)
# Naive Bayes on Word Level TF IDF Vectors
accuracy = train_model(naive_bayes.MultinomialNB(),train_text,train_label,test_text)
print ("NB, WordLevel TF-IDF: ", accuracy)
但是,Naive_bayes返回以下错误:
ValueError: Found input variables with inconsistent numbers of samples: [500, 3100]
我的训练数据
print(train_text.shape)
type(train_text)
返回
(3100, 3013)
scipy.sparse.csr.csr_matrix
我的训练标签
print(train_label.shape)
type(train_label)
返回
(3100,)
numpy.ndarray
我的测试数据集
print(test_text.shape)
type(test_text)
返回
(500, 3013)
scipy.sparse.csr.csr_matrix
我尝试了所有可能的转换类型。有人可以推荐解决方案吗?谢谢
我想问题出在
predictions = classifier.predict(feature_vector_valid)
return metrics.accuracy_score(predictions, train_label)
预测的形状是什么? train_label
是train_model
中的全局变量吗?另外,prediction
是否具有与train_label
相同的形状?