Project 06 · Football analytics

Machine Learning Model · Expected Goals (xG)

✅ publisheddata: 2022

Logistic regression model that estimates the probability of each shot becoming a goal using public StatsBomb data, match-level validation and application to selected teams at the Qatar 2022 World Cup.

Python
Pandas
Scikit-learn
Football
Machine Learning
Logistic regression

CONTEXT AND OBJECTIVE

Build an interpretable xG model that assigns a goal probability to each shot while preventing leakage between matches and reserving an external application set.

DATA AND DIAGNOSIS

  • A total of 63,740 shots from 2,526 matches are assembled, excluding penalty shootouts.
  • Distance and angle to goal are derived, while body part, shot type and technique, pressure and player position are encoded.
  • Training and test sets are split by match with GroupShuffleSplit; the final model uses 12 variables and is externally applied to Argentina, France, Morocco and Croatia at Qatar 2022.

DELIVERY AND LEARNING

On the test set, the model reaches ROC AUC 0.795 and Brier score 0.079; it estimates 1,674 expected goals against 1,688 observed goals. In the external application set, it estimates 58.2 xG against 57 actual goals.