← all projects

$ fbp-epl

done
2026
pythonxgboostscikit-learnelo

A machine learning CLI project I made to estimate the probability of the home team winning a Premier League match. It was a project for me to get hands-on experience with feature engineering and training a model to predict the outcome of a football match.

What it does

  1. Data — 230,000+ historical matches dating back to 2000.
  2. Features — each match is described by an Elo rating difference (team strength), recent form over the last 5 matches (momentum), shots on target over the last 5 (attacking efficiency), and home advantage.
  3. Models — I compared Logistic Regression, Random Forest, and XGBoost, and they all gave roughly the same accuracy. In the final implementation I used Logistic Regression, since it did marginally better than the others.
  4. Predict — an interactive CLI walks you through picking teams, with fuzzy string matching so “mancity” still finds Man City. Example fbp-epl

What I learned

Through this project, I learned more about feature engineering, as well as how to train and evaluate a machine learning model.

For future improvement, I will try to find a way to automate the data-collection part. However, the only sources I can find are the links I provided, and they either don’t have an API or their API isn’t working.