What DotA heroes play-styles are most alike?

STRATZ
STRATZ
Aug 28, 2017 · 3 min read

We recently finished our Heroes page at Stratz.com. The page is powered through us parsing every single DotA 2 match, giving us incredible depth and accuracy on hero statistics.

On top of the material displayed on the page, we are tracking and recording metrics on almost every facet of DotA 2. From APM [Actions per Minute], to ancient creep CS, buybacks and rune pickups. This in-depth data is available in our public API. As an example here are the average statistics for Anti-Mage (this is across all skill ranges, all lanes, all match times; which are all available as filters).

We have all this data. What can be done with it?

We can provide the data, therefore hopefully the talented DotA community can find some especially novel uses for it.

On our part, in the future we aim to utilise our data to provide optimal drafting decisions and advice. However this a complicated long-term project. For a short demonstration we needed a simpler idea. We went for something we’ve yet to see in DotA analysis; a visual representation of how similar heroes are. It’s a fairly simple thing to do, once you have the necessary data, so let’s do it!

How do you group similar things together?

The modern favoured algorithm for performing this task is “t-SNE”

What is t-SNE?

(t-SNE) t-Distributed Stochastic Neighbor Embedding is a non-linear dimensionality reduction algorithm used for exploring high-dimensional data. It maps multi-dimensional data to two or more dimensions suitable for human observation

erm…..what on earth does that mean? Well in simplest terms:

  • t-SNE takes the hundreds of different average factors heroes have [apm, gpm, kda, last hits, denies, courier kills, item builds etc].
  • “Smushes” the factors down from hundreds to only 2. Each of these two remaining factors is a complex combination of kda, last hits etc.
  • With only 2 factors/dimensions for each hero, we can use them as X and Y to plot the heroes on a 2d graph.
  • The t-SNE algorithm ensures that whilst “smushing”, heroes that are most similar in terms of kda, last hits etc, end up with similar X and Y values. Therefore landing next to each other on the graph.

Our implementation of t-SNE comes from here.


Results

We initially ran the algorithm on the majority of the hero variables we track, before narrowing it down to trying with just most popular items.

Full variables:

"courierPurchase", "courierUpgrade", "courierKills", "apm", "casts", "abilityCasts", "kills", "deaths",
"assists", "goldEarned", "networth", "xp", "cs", "dn", "neutrals", "is10kGoldComeback", "heroDamage",
"towerDamage", "physicalDamage", "magicalDamage", disableCount", "disableDuration", "stunCount",
"stunDuration", "slowCount", "slowDuration", "healingSelf", "healingAllies", "invisibleCount", "runePower",
"runeBounty", "wardObs", "wardSentry", "wardObsKilled", "level", "maxHp", "maxMp", "str", "agi", "int",
"hpRegen", "mpRegen", "campsStacked", "supportGold", "ancients", "goldLost", "goldFed", "weakenCount",
"weakenDuration", "physicalItemDamage", "magicalItemDamage", "healingItemSelf", "healingItemAllies",
"attackDamage", "castDamage", "damage", "kdaAverage", "items"

Items take into account the most common purchases throughout early, mid and late-game.


Item’s only:

We have only highlighted some item sectors, as it’s quite fun to try and work out the reasons for groupings yourself.

The script to try this out yourself is available here [Requires Python 2, with numpy, matplotlib and pillow installed]. It initially scrapes Stratz API to generate the input file, before utilising Laurens van der Maaten’s t-SNE script adapted to DotA heroes.

t-SNE has to find a balance between prioritising the local distance between very similar heroes, and the global distance between slightly similar heroes. This is defined as the ‘perplexity’ factor, we found 15 to generate sensible looking groupings to us. You may be able to find other interesting values.

You can also alter the scripts to reduce the data to 3 dimensions rather than 2, however this is more tricky to plot with 2d hero icons.

STRATZ_ThePianoDentist

)

STRATZ

Written by

STRATZ

Inspired Esports Analytics

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade