Project ยท Nov 2025
League of Legends Match Outcome Prediction
This project studies how predictable a League of Legends match becomes as the game evolves. I built a machine learning pipeline around Riot API timeline data, converted raw match events into temporal player/team features, and compared sequential deep learning models against traditional ML baselines.
Highlights
- Processed 128K+ in-game frames from 4,546 matches
- Engineered 256 temporal features with leakage-aware train/validation/test splits
- Compared LSTM, GRU, TCN, Transformer, Random Forest, Gradient Boosting, and XGBoost models
- Reached roughly 85% late-game test accuracy
Problem
League of Legends is a dynamic, partially observable game where early leads may or may not convert into wins. The goal was to predict match outcomes from evolving game-state data and understand how prediction confidence changes across time checkpoints.
Data and Features
I collected Riot API timeline data and converted raw event frames into a structured modeling dataset. Features capture player statistics, team-level differences, gold and XP dynamics, combat signals, vision control, map position, and objective progress.
- 4,546 matches and 128,684 temporal frames
- 256 engineered features after leakage checks
- Match-level train/validation/test splits to avoid frame leakage
- Separate evaluations at 10, 15, 20, 25, and 30 minute checkpoints
Modeling Approach
I compared sequential models that can learn temporal game dynamics with tree-based baselines that perform well on structured tabular features. The comparison highlights where sequence modeling helps and where strong engineered features allow simpler models to remain competitive.
- LSTM, GRU, TCN, and Transformer-style temporal models
- Random Forest, Gradient Boosting, AdaBoost, and XGBoost baselines
- Checkpoint-specific classifiers for different stages of the match
- Game-level visualization of prediction trajectories
Results and Takeaways
Late-game models reached roughly 85% test accuracy, while earlier checkpoints were naturally harder because the game state contains less decisive information. The project showed how temporal information, leakage prevention, and careful split design are just as important as model choice.