Skip to content

bgalkows/MetaMind

Repository files navigation

MetaMind

Unsupervised ML reveals latent patterns in LoL champion data, informing performance

MetaMind analyzes millions of League of Legends matches using unsupervised clustering to discover how champions scale across game time—no human bias, just pure data-driven insights.

What This Project Does

MetaMind automatically scrapes win rate data for every League of Legends champion across different game durations, then applies sophisticated clustering algorithms to reveal natural performance patterns that emerge from the data itself. I previously wrote and hosted a website displaying this data which I've now taken offline.

The analysis uncovers four distinct scaling archetypes:

  • Early Game Dominators - Forward-skewed champions who peak in the first 15 minutes
  • Mid Game Specialists - Champions with level-based power spikes around 20-25 minutes
  • Late Game Hypercarries - Rare champions with monotonically increasing win rates
  • Polarized Scalers - The surprising fourth pattern: strong early and late, weak mid-game

The Pipeline

  1. Intelligent Web Scraping - Selenium-based scraper navigates LoL data aggregators to extract win rate/time data and champion role information
  2. Data Processing - Cleans and structures performance metrics across 8 time intervals (10-45 minutes)
  3. Unsupervised Clustering - K-Means with PCA dimensionality reduction identifies natural groupings in high-dimensional performance space
  4. t-SNE Visualization - Projects champion similarities into 2D space with contour-smoothed cluster boundaries and champion icon overlays
  5. Interactive Dashboard - Flask web app with Plotly visualizations lets you explore scaling patterns by role and discover which champions cluster together

Technologies

  • ML/Data Science: scikit-learn (K-Means, Spectral Clustering, t-SNE, PCA), NumPy, Pandas
  • Visualization: Plotly (interactive graphs), Matplotlib
  • Web Scraping: Selenium WebDriver with smart rate limiting
  • Web Framework: Flask with Redis caching and Talisman security
  • Deployment: Production-ready with Gunicorn

Quick Start

The data pipeline and then visualizations are expected to take 30-50 minutes depending on network speed and hardware.

python3 -m venv myenv
source myenv/bin/activate
python3 -m pip install -r requirements.txt
python3 clustersMain.py  # Run clustering analysis
python3 app.py           # Launch interactive dashboard

Why This Matters

Traditional game analysis relies on player intuition and anecdotal experience. MetaMind lets the data speak for itself, uncovering patterns that even experienced players might miss. The discovery of the "Polarized" scaling pattern which defines conventional LoL discourse is a perfect example of ML finding signal in the noise

About

League of Legends machine learning project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages