title: Why is my VotingClassifier accuracy less than my individual classifier?
body: <p>I am trying to create an ensemble of three classifiers (Random Forest, Support Vector Machine and XGBoost) using the VotingClassifier() in scikit-learn. However, I find that the accuracy of the ensemble actually decreases instead of increasing. I can't figure out why. </p>
  
  <p>Here is the code:</p>
  
  <pre><code>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))
  </code></pre>
  
  <p>The XGBoost has the highest accuracy so I even tried giving it more weightage to no avail. </p>
  
  <p>What could I be doing wrong?</p>