Skip to content

AakashBiju/acl-predictor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ACL Injury Risk Predictor — 2026 FIFA World Cup

An end-to-end machine learning pipeline that predicts ACL injury risk for all 1,218 players at the 2026 FIFA World Cup, using only publicly available data.

Results

  • 0.917 CV ROC-AUC on a held-out validation set
  • 307 players flagged as High Risk
  • 101 players identified as re-tear candidates (prior ACL history)
  • 206 players flagged as first-tear risk from injury burden alone
  • Manuel Ugarte (Uruguay) — torn ACL June 28 2026, flagged pre-tournament ✓

Data Sources

Source What How
FBref (via soccerdata) Player workload stats — minutes, starts, tackles Python scraper
Wikipedia 2026 World Cup squads — 1,248 players, 48 teams BeautifulSoup
Transfermarkt Full career injury history per player Custom scraper + fuzzy matching
Manual Venue surface types (artificial vs natural turf) 16 stadiums

Model

XGBoost classifier with SMOTE oversampling to handle class imbalance (8.3% positive rate). 18 features — all validated for zero target leakage.

Key features: total_days_out, knee_injuries, avg_days_out, injuries_last_2_years, pos_risk, age_risk, workload_risk

Dashboard

Interactive Streamlit app with risk leaderboard, re-tear vs first-tear split, player spotlight, and risk distribution.

pip install -r requirements.txt
streamlit run app.py

Project Structure

acl-predictor/
├── pipeline.ipynb       ← Steps 1–3: data collection, cleaning, model training
├── app.py               ← Streamlit dashboard
├── data/raw/            ← scraped CSVs
├── data/processed/      ← master_scored.csv (dashboard input)
├── models/              ← trained XGBoost pipeline
└── outputs/             ← feature importance charts

Reproducing from Scratch

  1. pip install -r requirements.txt
  2. Run all cells in pipeline.ipynb (~3 hours total — scraping is the bottleneck)
  3. streamlit run app.py

Note: Transfermarkt scraping includes a 1.5s delay per request to be respectful of their servers.

About

ML pipeline predicting ACL injury risk for 2026 FIFA World Cup players

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages