Predicting outcome of MOBA team games

MOBA team games have teams composed of a subset of 5 heroes from a larger set of possible heroes (say 100 heroes in the larger set)

For example, a game can be between a team with heroes 1,8,43,65 and 71 and a team with heroes 3,7,23,41 and 45.

What is the best way to train a model that predicts the outcome based on team compositions?

For example, one option would be to have something like this:

|Label  | Hero1 | Hero2 | Hero3 | Hero4 | Hero5 | Hero6 | Hero7 | Hero8 | Hero9 | Hero10 |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|--------|
| 1     | 1     | 8     | 43    | 65    | 71    | 3     | 7     | 23    | 41    | 45     |

While another option could be instead of having 10 numeric columns for the hero selection, to have 200 boolean columns (100 for team A and 100 for team B) which would have a value of true if that hero was included in that team.

Which would be a better option? Or is there an even better option outside of those two?

Thanks!

Topic game

Category Data Science


If the order of the heroes doesn't matter, I would go for the boolean columns.

The reasoning is the following: We have two possible cases: we always order the player hero ids in a team, or we don't necessarily do that.

  • If we order hero ids: let's say a team has players 1,2,3,4,5 and another team has players 2,3,4,5,10. The teams are very similar (we've only changed one player), but the features are completely different. In machine learning we want similar entities to have similar representations in terms of features.
  • If we don't order hero ids: then, it's even worse, as the team 1,2,3,4,5 has the completely different features from 5,1,2,3,4, and they are the same team.

If we do the boolean encoding: if we reorder the heroes we have the same representation, and if we change only a player only a feature of the 200 changes.

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.