Predictive analysis and modelling football results using machine learning approach for English Premier League
Code for the paper Predictive analysis and modelling football results using machine learning approach for English Premier League .
Alternate Paper Link : Alternate Paper Link
The introduction of artificial intelligence has given us the ability to build predictive systems with unprecedented accuracy. Machine learning is being used in virtually all areas in one way or another, due to its extreme effectiveness. One such area where predictive systems have gained a lot of popularity is the prediction of football match results. This paper demonstrates our work on the building of a generalized predictive model for predicting the results of the English Premier League. Using feature engineering and exploratory data analysis, we create a feature set for determining the most important factors for predicting the results of a football match, and consequently create a highly accurate predictive system using machine learning. We demonstrate the strong dependence of our models’ performances on important features. Our best model using gradient boosting achieved a performance of 0.2156 on the ranked probability score (RPS) metric for game weeks 6 to 38 for the English Premier League aggregated over two seasons (2014–2015 and 2015–2016), whereas the betting organizations that we consider (Bet365 and Pinnacle Sports) obtained an RPS value of 0.2012 for the same period. Since a lower RPS value represents a higher predictive accuracy, our model was not able to outperform the bookmaker’s predictions, despite obtaining promising results.
1. Clone the repository
$ git clone https://github.com/RahulBaboota/Predicting-English-Premier-Results.git
$ cd Predicting-English-Premier-Results
2. Create new virtual environment
$ sudo pip install virtualenv
$ virtualenv venv
$ source venv/bin/activate
$ pip install -r requirements.txt
3. Repository Information
- The folder Data contains the raw data collected from Football UK .
- The folder GridSearch contains the pickled grid search objects for the machine learning models.
- The folder Scraper.py contains the code for scraping the FIFA Ratings for the teams. (The scraper might be redundant now if the website layout has changed since). as well as the scraped data.
- The file FeatureEngineering.py contains the code for creating the features from the raw data.
- The file TrainTestSplit.py contains the code for splitting up the data into a training and testing split as well as creating the subsets A and B as mentioned in the paper.
- The jupyter notebooks are for the different models on both subsets A as well as B.