Python sklearn:调用naive_bayes.MultinomialNB时发现数组的样本数不一致(
我曾研究过类似的问题,例如。但上述解决方案在我的案例中都不起作用 我试图建立一个文本分类预测模型Python sklearn:调用naive_bayes.MultinomialNB时发现数组的样本数不一致(,python,scikit-learn,scipy,text-classification,naivebayes,Python,Scikit Learn,Scipy,Text Classification,Naivebayes,我曾研究过类似的问题,例如。但上述解决方案在我的案例中都不起作用 我试图建立一个文本分类预测模型 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)
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
(500, 3013)
scipy.sparse.csr.csr_matrix
我的培训标签
print(train_label.shape)
type(train_label)
返回
(3100,)
numpy.ndarray
我的测试数据集
print(test_text.shape)
type(test_text)
返回
(3100, 3013)
scipy.sparse.csr.csr_matrix
(500, 3013)
scipy.sparse.csr.csr_matrix
我尝试了各种可能的转换。有谁能推荐一种解决方案吗?谢谢我想问题出在哪里了
predictions = classifier.predict(feature_vector_valid)
return metrics.accuracy_score(predictions, train_label)
预测的形状是什么?
train\u label
是train\u model
中的一个全局变量吗?prediction
与train\u label
具有相同的形状吗?预测的形状是(500,)
。是的,这就是问题所在。train\u label
的形状是(3100,)
。当预测和训练标签
形状不同时,如何计算它们的准确度?你有什么建议?你可以选择预测=分类器。预测(特征向量训练)
或度量。准确度评分(预测,有效标签)
如果您有验证集,则有标签。当我用feature\u vector\u train替换feature\u vector\u valid时,它起了作用。但这是正确的方法吗?因为我遵循本指南,这就是我获取代码的地方。我能看到预测的输出吗?谢谢您的帮助。