Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sklearn:调用naive_bayes.MultinomialNB时发现数组的样本数不一致(_Python_Scikit Learn_Scipy_Text Classification_Naivebayes - Fatal编程技术网

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时,它起了作用。但这是正确的方法吗?因为我遵循本指南,这就是我获取代码的地方。我能看到预测的输出吗?谢谢您的帮助。