Skip to content

MikkiSeidenschnur/data_ber_dota2_winpredictor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A win predictor for DOTA 2

A project created by Mikki Seidenhscnur

Contributors: Edgar Peña, Regina Hunter
Data obtained from Opendota's API

image

Ironhack data bootcamp in Berlin 31-07-2020

This repository contains:

  • /data (hero data including random sample data)
  • /notebooks (code based of Jupyter notebook)
  • /source (python modules)
  • .gitignore
  • LICENSE
  • README.md

1. What is DOTA 2?

The best person to answer that question is the famous "get started with DOTA 2" youtuber Purge. See this short video to become enlightened! ;)

The presentation presented on the August 31 2020, can be found on this link

2. Problem description

The DOTA 2 community also seem to agree that counter picking is a massive part of the game. The community seem to come back to this point over and over again counterpicking.

Over the years, a multitude of DOTA 2 "drafting clients" have come on the market. A few examples are dota2freaks, dotapicker, & overwolf. All of these clients heavily rely on match data, but also make predictions on a vast amount of parameters, and not only the draft. These drafting clients have become extremely complicated and are not transparent on how they make their predictions.

Therefore, in this case, we would like to create a simple win predictor, that can tell the winrate of one team over the other, simply by looking at a specific matchup.

3. Hypothesis

By knowing the draft of a DOTA 2 match, it should be possible to predict the given outcome of said match.

4. Overview/architecture

Below image displays the overall tasks in the project. We need two data sets in order to create our win predictor. The first data set should be the "sample" data set, from where we will compute the probability of one hero winning over another. image

4.1 Using the opendota API to get match data

The opendota API has a "explorer" that takes URL requests in SQL format to their database. In this way 300.000 training matches and 30.000 test matches were provided for training and test the models Opendota API

4.2 Counting the picks of each hero

The least picked hero was picked 900 times. Therefore it is meant to be a representative dataset with plenty of sample points to speak to the general trends of the data.

Furthermore, we counted all the heroes against each other, and created a 119x119 pivot table that shows the winrate for all possible hero matchups, as seen below: image

5. Results/Discussion

Finally we used our win predictor on the test data, as shown in the below image: image Above images shows that the winpredictor predicts 58% of the matches outcome correctly with the logistic regression made with the feature sets of the fractional probabilities. While it consistently does 58% accurately, there are some ways believed to make it better

  • Add the players skill level on the hero as a weight when considering their synergy and counter mechanisms

It seems that there might be some truth to the hypothesis that the win predictor can predict the outcome of the match based on the draft. However, in future works, explanatory features for increased model precision should be explored.

6. Links

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published