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

All projects · Contact

Loading project…