Dota 2 Win Prediction


placeholder

View Project in GitHub

classification clustering rest api

1 min READ

Problem Statement

To find the win probability of a dota match based on the in-game metrics and the users prefences in playing a character out of 128 character in the dota arsenal.

Approach

Clustering

In order to understand the players win probability we first have to extract the experience and knowledge of each hero and its corresponding role. We first extract the hero statistics data for 100+ characters in order to get the total matches played, the win probability when the user picks the character and win probability when it is picked against. https://api.opendota.com/api/players/116926281/heroes The table is read in json and it is joined to a hero statistics table in order to find the primary role of the hero/character (carry/support).

After data cleaning and preprocessing the table is ready to be fit in the K-Means algorithm to classify them based on 5 labels

KPI: Win probability with and Against for each . Support or Carry role

Classification

In order to find if the player wins or losses the match. Data of the matches taken from https://api.opendota.com/api/players/116926281/matches in order to get the in game user statistics like Kills, Deaths, Assists, Duration of the game etc. Finally the clusters of the hero’s data is added to the main matches dataframe to get the characters data and its corresponding clusters.

The final dataframe is ready for modelling. Prediction if the match is All classification models such as Logistic Regression, Decision Tree, Random Forest, Gaussian Nave Bayes KNN are used.

Conclusion

All Classification models are performing well. The model is able to predict whether the player playing with his current performance metrics can win or lose the match.