我设计了类似于袋装分类器的模型。但是在每个级别中,不是训练单个分类器,而是训练投票分类器作为基本分类器。投票分类器包含svm和logisticRegression分类器。训练投票分类器后,我将它们保存在列表中并将列表传递给EnsembleVotingClassifer来自mlxtend包。我使用EnsembleVotingClassifer,因为sklearn VotingClassifier无法处理预拟合的分类器。我想知道我做的还是这个模型是错误的?如果此方法正确,那么此方法的一般名称是什么?
我在装袋过程中通过将引导程序样本传递给投票分类器来训练投票分类器,如下所示:
estimators=[('svm', SVC(kernel='linear',C=1)), ('log_reg',
LogisticRegression(solver='liblinear'))]
Clf=VotingClassifier(estimators,voting='hard')
Clf.fit(NEW_X, NEW_Y)
lst_estimators.append(Clf)
然后我通过此代码从中获得预测:
clf_full=EnsembleVoteClassifier(clfs=lst_estimators, refit=False)
clf_full.fit(tf_idf_train,polarity_train)
pred=clf_full.predict(tf_idf_test)
f1=f1_score(polarity_test, pred,average='macro')
print(classification_report(polarity_test,pred))
print(confusion_matrix(polarity_test,pred))