1
$\begingroup$

What methods can be used to overcome the tie-breaking when using majority voting in ensemble? I read that Weighted majority voting can help; however, it wasn't effective on the dataset I am using in terms of the F1 score and it dropped significantly.

$\endgroup$
8
  • 2
    $\begingroup$ There are about a million options here, but nobody can make a universal pronouncement about ‘best’. $\endgroup$ Jun 24 at 14:28
  • 1
    $\begingroup$ More votes (ie more trees) will lead to less ties. An odd number of votes will eliminate ties in binary classification $\endgroup$
    – astel
    Jun 24 at 15:29
  • 1
    $\begingroup$ What’s wrong with a tie? (I have my thoughts, but it will help to hear yours.) $\endgroup$
    – Dave
    Jul 2 at 4:24
  • $\begingroup$ @Dave Currently I am doing an Unsupervised binary classification (0,1). For the majority voting, I am using mode from scipy. Once I have a tie break the mode chooses 0 which is affecting my f1 score. I thought of adding an odd number of base learners. However, my base learners are created from two algorithms with different parameter sets. Therefore, I cant choose (favour) one algorithm over the other to break the tie $\endgroup$
    – s_am
    Jul 2 at 8:34
  • $\begingroup$ Would you prefer that some of the ties be called $1$ instead of $0$? $\endgroup$
    – Dave
    Jul 2 at 14:11
1
$\begingroup$

a) count the votes, select the class with more votes

b) count the votes weighted by the confidence (or probability) the base classifier assigns to its decision. Select the class with higher weighted vote.

c) count the votes. If there is a tie (and only if there is a tie) select the class with higher weighted votes for only the classes tied as best. (I think sklearn uses this at least in their OVO implementation)

None of them is "best". This third one is not equivalent to the 2nd and so it may be worth it to try.

$\endgroup$
3
  • $\begingroup$ Point B is not clear to me/ Could you please explain it a bit more. Point C is an interesting approach, definitely I am going to try it. $\endgroup$
    – s_am
    Jul 14 at 9:53
  • 1
    $\begingroup$ Usually, classifiers output a degree do confidence (which could be a probability or another number) for the data in relation to each class. This is the decision_function() method output in sklearn. Add such degrees of confidence for ach class and select the most confident. $\endgroup$ Jul 14 at 16:55
  • $\begingroup$ Thank you for the explination. $\endgroup$
    – s_am
    Jul 16 at 11:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.