Can data science make games more engaging? This project used data analysis & machine learning to analyze thousands of League of Legends matches, aiming to predict outcomes and reveal what drives a win.
The project aimed to find a data related business problem from League of Legends data, apply machine learning techniques to predict match outcomes, analyze team composition, and provide recommendations for improving matchmaking quality and player engagement.
Tableau: Explored datasets to understand trends and define the data-driven business problem
Orange Data Mining: Built initial ML models, tested feature importance, and created the workflow for the whole process
Python (pandas, numpy, seaborn, matplotlib, scikit-learn): Used for data cleaning, preparation, ML model creation, and evaluation of models
Active Users dataset – kept only month and average monthly players columns, since data was already high quality with no missing values.
Games dataset – removed duplicate game IDs and unnecessary columns, keeping only game count and champion IDs relevant for analysis.
Champions dataset – split skills column into multiple columns, deleted columns with many nulls, and fixed wrong characters ({, }, !) to correct data types.
Additional Excel file – reshaped the games file so champion IDs were listed in rows instead of columns, enabling merges with the champions dataset.
Created an interactive dashboard in Tableau to explore player trends.
Found that active players dropped 17.5% compared to the average of 55M monthly users.
Analysis showed older champions were picked far more often than new ones.
Heatmap revealed that too many complex champion features may confuse new players.
Insights suggested that declining engagement is linked to unbalanced matchmaking and low adoption of new champions.
Business Problem: LoL is on a declining trend for active players even though the company continues to develop new characters with various features.
Business Question: How game developers can create a better champion-suggesting system before a match starts to improve the gaming experience?
Built initial ML models to test the effect of individual champions on win probability.
Results were weak, but Random Forest performed best among models.
Feature importance analysis highlighted the most influential stats (e.g., health growth, damage growth).
Unnecessary features were eliminated, and findings led to shifting the approach towards analyzing average team performance instead of individual heroes.
Applied five classification models: Logistic Regression, Decision Tree, Random Forest, LightGBM, and Neural Network.
Logistic Regression gave the best results with the highest accuracy, F1, Recall, and AUC scores.
Teams with more tanks (higher health, lower damage) faced a 25–30% higher chance of losing.
Teams with more assassins (lower overall health) had a 25% higher chance of winning.
Balance between champion roles was the key factor for win probability.
You can access the Python workflow and code directly here
Improve matchmaking systems by focusing on balanced team compositions.
Use AI-simulated mini-games (15 minutes) to test team balance and player performance.
Provide dashboards for players and esports teams to track performance, team stats, and areas for improvement.
The project revealed that individual champion features alone cannot reliably predict match outcomes. By shifting the focus to team-level performance, stronger insights were uncovered — balanced teams consistently achieved better win rates. Logistic Regression provided the most accurate predictions, and SHAP analysis confirmed that extreme reliance on tanks or assassins reduced winning chances. The study concludes that balanced team composition and improved matchmaking are essential to enhance player engagement and retention.