在模型中测试新数据

数据挖掘 Python scikit-学习 熊猫 集成建模
2022-02-16 08:58:27

我已经集成了以下 3 种算法,

estimators = []
model1 = MultinomialNB().fit(X,y)
estimators.append(('Naive Bayes', model1))
model2 = LinearSVC(random_state=0).fit(X,y)
estimators.append(('SVM', model2))
model3 = RandomForestClassifier(bootstrap=True).fit(X,y)
estimators.append(('Random Forest', model3))

# create the ensemble model
ensemble = VotingClassifier(estimators)
results = model_selection.cross_val_score(ensemble, X, y)
print(results.mean())

在传递新句子以测试我使用的合奏时,

predicted = results.predict(X_new_tfidf)

但我收到错误:

AttributeError:“numpy.ndarray”对象没有属性“predict”

我该如何修复/调试这个?

1个回答

您的行results = model_selection.cross_val_score(ensemble, X, y)只为交叉验证的每次运行返回一个分数数组,因此错误告诉您它只是一个数字数组,而不是模型本身,并且没有定义的拟合方法。

要使用预测,您需要在模型对象上调用它,我假设您要使用 VotingClassifier。你的ensemble变量有一个 fit 方法,所以你想调用

predicted = ensemble.predict(X_new_tfidf)