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.
Below are some related works of Machine Learning application on Dota 2: