我正在尝试使用 scikit-learn 中的 VotingClassifier() 创建三个分类器(随机森林、支持向量机和 XGBoost)的集合。但是,我发现集成的准确性实际上是降低而不是提高。我不知道为什么。
这是代码:
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 具有最高的准确度,所以我什至尝试给它更多的权重,但无济于事。
我可能做错了什么?