This project predicts Dota 2 match outcomes using machine learning models, leveraging data from OpenDota. The workflow includes data extraction, cleaning, feature engineering, and model training (including XGBoost and linear/logistic regression).
.
├── .devcontainer/ # VS Code dev container config
│ ├── devcontainer.json
│ └── dockerfile
├── data/
│ ├── bronze/ # Raw data (downloaded)
│ ├── silver/ # Cleaned/transformed data
│ └── gold/ # (Reserved for final datasets)
├── src/
│ ├── fetch_data.ipynb # Data extraction from OpenDota API
│ ├── data_wrangling.ipynb # Data cleaning & feature engineering
│ └── model.ipynb # Model training & evaluation
├── requirements.txt # Python dependencies
├── README.md
└── .gitignore
-
Clone the repository:
git clone https://github.com/Tooruogata/DotaMatchPrediction.git cd DotaMatchPrediction -
Set up docker image:
Set up the docker image:
docker build -t DotaMatchPrediction:latest -f .devcontainer/Dockerfile .
docker run -dit --name DotaMatchPrediction -v "$repopath:/workspace" -w /workspace DotaMatchPrediction:latest-
Data Extraction:
Usesrc/fetch_data.ipynbto download match data from OpenDota using SQL queries via their API. Data is saved indata/bronze/all_dota_matches.csv. -
Data Wrangling:
Clean and transform the raw data usingsrc/data_wrangling.ipynb. This notebook performs feature engineering and outputs a processed dataset todata/silver/data_transformed.csv.
- Model Training & Evaluation (in progress):
src/model.ipynbcontains code for:- Linear Regression
- Logistic Regression
- XGBoost Classifier (with grid search)
- Model evaluation (accuracy, confusion matrix, classification report, plots)
-
Fetch Data:
Run all cells insrc/fetch_data.ipynbto download and save raw match data. -
Process Data:
Run all cells insrc/data_wrangling.ipynbto clean and engineer features. -
Train Models:
Run all cells insrc/model.ipynbto train and evaluate models.