Predicting the winner of a Dota 2 match using neural networks

Since The International is coming up soon, I made this small little site that tries to predict the winning team of a Dota match, based on the hero picks.


I wanted to make a simple machine learning project, so I came up with an idea: can you predict the winning team of a Dota match based on picks alone? Input is the team composition from both sides, and output is the probability of either team winning.

The data is from (an excellent resource and a really flexible API). The source data is all professional matches on patch 7.06 and above. I didn't want to include older data, because I am not sure if there are any significant balance changes done in those versions.

Recommended usage: I recommend you go to the matches page in and paste a match ID from any of the professional matches and see the prediction.

Library for building the neural network is brain.js. It was really easy to use, I also tried setting up Tensorflow but getting that up and running required quite a lot of knowledge of machine learning and terms involved.

So have fun with it, and let me know any feedback in the comments :)


Add new comment