Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Tool that predicts the outcome of a Dota 2 game using Machine Learning
| Date | Stars |
|---|---|
| 2026-07-31 | 373 |
| 2026-08-04 | 373 |
| 2026-08-06 | 373 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# Important update from the author
I will try to update this repo over the winter break as I want the game meta to stabilize a little. Stay tuned!
# dota2-predictor
1. [Overview](#overview)
2. [Requirements](#requirements)
3. [Project structure](#structure)
4. [Basic usage](#usage)
* [Mining](#mining)
* [Loading a dataset](#dataset)
* [Training and evaluating a model](#training)
* [Querying a model](#querying)
* [Visualizing data](#visualizing)
5. [Author's note](#author)
6. [FAQ](#faq)
## Overview <a name="overview"></a>
dota2-predictor is a tool that uses Machine Learning to predict the outcome of a Dota 2 game and suggest the best last pick. Moreover, it helps the users visualize various statistics of the datasets (e.g. hero maps, synergies, counters). The project achieves roughly 0.65 ROC AUC score using Logistic Regression and Neural Networks. The code is used mainly for creating models used by [dotadamus.com](http://www.dotadamus.com).
## Requirements <a name="requirements"></a>
The project requires a handful of python2.7 packages. Install them using:
```bash
pip install -r requirements.txt
```
## Project structure <a name="structure"></a>
.
├── preprocessing # Dataset preprocessing
├── pretrained # Pretrained models for each MMR category and precomputed synergies
├── tools # Auxiliary tools e.g. metadata parser and miner
├── training # Model training and evaluation
├── visualizing # Plotting tools
├── 706e.zip # Mined dataset example
├── api_examples.py # Examples of API usage
└── metadata.json # Heroes and patches database
## Basic usage <a name="usage"></a>
You can find all the functions this tool has in [api_examples.py](https://github.com/andreiapostoae/dota2-predictor/blob/master/api_examples.py).
### Mining data <a name="mining"></a>
Mining the first 1000 games between two valid match IDs and saving them to a file is as simple as:
```python
from tools.miner import mine_data
mine_data(file_name='mine_example.csv',
first_match_id=3492535023,
last_match_id=3498023575,
stop_at=1000)
```
The result will be a CSV file with the following format:
| match_id | radiant_win | radiant_team | dire_team | avg_mmr | num_mmr | game_mode | lobby_type |
|------------|-------------|--------------------|----------------|---------|---------|-----------|------------|
| 3315687002 | True | "105,74,14,41,113" | "7,63,93,4,36" | 3649 | 2 | 22 | 7 |
| 3380355408 | False | "97,62,18,50,35" | "7,22,32,1,36" | 3186 | 7 | 22 | 7 |
| 3324424409 | False | "96,74,36,15,94" | "39,1,2,86,27" | 2648 | 2 | 22 | 0 |
* match_id: the official match ID stored in Valve servers
* radiant_win: True if radiant won, False if dire won
* radiant_team: string containing 5 hero IDs coresponding to the heroes in the radiant team
* dire_team: same, but for dire
* avg_mmr: average MMR of people with public MMR in the game
* num_mmr: number of people with public MMR in the game
* game_mode: 22 - All Pick
* lobby_type: 7 - Ranked, 0 - Normal
### Loading a dataset <a name="dataset"></a>
When loading a dataset, additional preprocessing through feature engineering is done. We define **advantages** two (number_of_heroes, number_of_heroes) matrices that give a score for synergy and counter between each combination of heroes.
* 0.54 score at position [i, j] for the synergy matrix means hero<sub>i</sub> and hero<sub>j</sub> have a 54% winrate when playing in the same team (the matrix is symmetrical)
* 0.33 score at position [i, j] for the counter matrix means hero<sub>i</sub> has a 33% winrate against hero<sub>j</sub> (the matrix is not symmetrical)
For the entire dataset, these advantagesExcerpt of 10,446 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:411c1aeeddaf491a, topic:neural-network