sklearn:调用naive_bayes.MultinomialNB(

问题描述 投票:0回答:1
时发现数组的样本数量不一致。

我看过类似的问题,例如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

我尝试了所有可能的转换类型。有人可以推荐解决方案吗?谢谢

python scikit-learn scipy text-classification naivebayes
1个回答
0
投票

我想问题出在

predictions = classifier.predict(feature_vector_valid)
return metrics.accuracy_score(predictions, train_label)

预测的形状是什么? train_labeltrain_model中的全局变量吗?另外,prediction是否具有与train_label相同的形状?

© www.soinside.com 2019 - 2024. All rights reserved.