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