League of Legends Win Predictor
Flask service exposing a logistic-regression model trained on match-level statistics to estimate a team's chance of victory, with a reproducible training pipeline, JSON API, and an interactive dashboard.
Overview
An end-to-end classical ML project: an offline training pipeline produces a StandardScaler + LogisticRegression model from match statistics, and a Flask service serves predictions through a JSON API and an interactive dashboard that also displays the model's validation accuracy and ROC AUC.
Challenge
Match outcomes depend on many in-game statistics. The goal was a simple, interpretable model with a reproducible training pipeline, packaged as a service that others can query and understand.
Solution
A training script that splits the data, fits a scikit-learn pipeline (StandardScaler + LogisticRegression), and saves the artifact with metadata (feature order, target, validation metrics); a Flask app factory with /predict and /health endpoints and a dashboard UI.
Architecture
pipeline/train_pipeline.py → artifacts (joblib + metadata.json) → Flask API (/predict, /health) → dashboard
Results
- Model: Logistic Regression
- API: /predict · /health
- Reproducible, parameterized training pipeline
- Versioned artifacts with feature metadata and validation metrics
- JSON prediction API plus health probe
- Dashboard shows accuracy / ROC AUC alongside predictions
Technologies
- Python
- scikit-learn
- Logistic Regression
- Flask
- Pandas
- joblib
Loading project…