nickpadd / EuropeanFootballLeaguePredictor

A machine learning/statistical model to derive prediction probabilities for football matches of the top european leagues.
https://nickpadd.github.io/EFLP.github.io/Home/
MIT License
15 stars 3 forks source link
expected-value football machine-learning soccer statistics

EuropeanFotballLeaguePredictor

EuropeanFootballLeaguePredictor is a predictor of europes top league games based on historic performances of teams, taking into account only advanced league table statistics. It uses traditional machine learning techniques and statistical modeling in order to deduct data driven predictions based on the team’s season performance and recent form. The EuropeanFootballLeaguePredictor includes EnglishPremierLegue, La Liga, Ligue 1, Bundesliga, Serie A.

Betting Disclaimer

The EuropeanFootballLeaguePredictor project and its associated predictions are provided for informational purposes. The predictions generated by this project should not be considered as financial advice or recommendations to place bets on any Premier League matches or other events.

Betting involves risks, and there is no guarantee that the predictions provided by this project will result in accurate outcomes or profitable bets. The outcomes of sports events can be influenced by a wide range of variables that may not be fully captured by the prediction model.

Visit the Github Page

The EuropeanFootballLeaguePredictor Github Page provides a detailed description of the model creation and evaluation on past seasons, as well as the upcoming predictions of this week's european league games!

How to run the project

Installing Project Dependencies

  1. Clone this repository to your local machine or download the project files.

    
    git clone https://github.com/nickpadd/EuropeanFootballLeaguePredictor
  2. Navigate to the project directory using the command line.

    
    cd EuropeanFootballLeaguePredictor

Configuration

The configuration file europeanfootballleaguepredictor/config/config.yaml includes many of the models parameters such as:

Running the scripts for the upcoming matches

For running the scripts below make sure you have followed Installing Project Dependencies and you are inside the poetry shell.

python run_evaluation_per_season.py

Leave one season out technique is used excluding the 2023 season which is left out for the final model test. For each run the model will train on all seasons but one and bet on the left out season and producing important metrics and figures that are logged to mlflow. The figures can also be found in 'europeanfootballleague/data/leagues/{league}/evaluation/' directory.
Each figure is the ROI and Net-Gain curve for all the bets that the model produced in the exact betting category. The metrics are produced for each year independently and consist of:

In order to access the logged runs use the mlflow user interface by running:

mlflow ui

This will host a user interface in local hosts were you will be able to examine and compare model performances.

Optimal model parameters and performance

Currently ongoing model evaluation of optimal hyperparameters and performance. Will be updated soon.