Skip to content

hardianlawi/dota2-match-prediction

Repository files navigation

Dota 2 Match Outcome Prediction

Data Collection

Firstly, we collect 38,357 public matches data using OpenDota Explorer

Below is the query we used:

select *
from public_matches
where avg_mmr > 5000 and
    lobby_type = 7 and
    game_mode = 22 and
    start_time > 1535760000 and
    start_time < 1539280800

Then, we save the result as public_matches.json by clicking the API.

The public_matches.json will contain several fields, i.e. command, rowCount, oid, rows, fields, _parsers, RowCtor, rowAsArray, and err. Below is a sample of the rows field:

{'match_id': 4154000815,
 'match_seq_num': 3599507325,
 'radiant_win': False,
 'start_time': 1538765662,
 'duration': 2470,
 'avg_mmr': 5001,
 'num_mmr': 6,
 'lobby_type': 7,
 'game_mode': 22,
 'avg_rank_tier': 77,
 'num_rank_tier': 7,
 'cluster': 123}

After querying the public matches, we extract the more detailed matches data using the OpenDota API based on the match_ids we queried.

Another API alternative is to use this which requires Steam API key.

After extracting the data, we reformat and save it to a csv format.

Related Work

Below are some related works of Machine Learning application on Dota 2:

About

Predict the outcome of Dota 2 matches

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published