我想创建一个分类器(随机森林、支持向量机和XGBoost)的集成,使用scikit-learn中的VotingClassifier()。但是,我发现集成的准确率实际上会降低而不是提高。我搞不清原因。
以下是代码:
from sklearn.ensemble import VotingClassifier
eclf = VotingClassifier(estimators=[('rf', rf_optimized), ('svc', svc_optimized), ('xgb', xgb_optimized)],
voting='soft', weights=[1,1,2])
for clf, label in zip([rf, svc_optimized, xgb_optimized, eclf], ['Random Forest', 'Support Vector Machine', 'XGBoost', 'Ensemble']):
scores = cross_val_score(clf, X, y, cv=10, scoring='accuracy')
print("Accuracy: %0.3f (+/- %0.3f) [%s]" % (scores.mean(), scores.std(), label))
XGBoost具有最高的准确性,所以我甚至尝试给它更多的权重,但没有效果。
我可能做错了什么?