Using machine learning to determine the best fantasy premier league players

William Beazley


Supervised by Oktay Karakus; Moderated by Amir Javed

For my proposal, I would like to look deeper into different machine learning models to determine the best possible fantasy premier league (FPL) squad in the upcoming game week based on the players fitness, opponents and previous performances. Fantasy premier league is a web based game which allows users to create a team which they can put out each week. this team will then be scored by how each of their players perform in real life matches. there are many rules that players have to abide by when choosing a team such as they must choose 2 GK, 5 DEF, 5 MID and 3 ATT however they can only field 11 players, they only get 100 million to spend (each player has a price) and users cannot pick more than 3 players from the same team. I would like to look further into this as I have been playing FPL for the past 6 years and I have found that, more often than not, patterns emerge from players based on previous game history and I would like to use this to help others make transfers each week to their FPL.

There are many rules within FPL that limit the user. As I stated above, only 11 can start from the initial 15 and no more than 3 players from each team are allowed. Other restrictions/criteria include, each week a captain and vice-captain will have to be picked. the captain will receive double points for that week and the vice-captain will get double points if the captain does not play. automatic substitutions will be made if some players cannot play, so picking the best subs will be a task. When deciding on the best team, a formation will have to be picked which doesn't allow less than 3 defenders, less than 2 midfielders and obviously less than 1 attacker and goalkeeper.

The main task is to predict each individual players predicted points for the upcoming fixtures. This prediction will be based off previous performances against the team they are facing as well as the form they are in from the previous games they have played this season. I intend on using the data from the FPL website to construct predicted points using linear regression. I will then use a linear programming algorithm to decide which players should make it into the 15 man squad using only the 100 million budget. I will then suggest the best players to the user via a GUI.

previous solutions to this problems do not factor in how players perform against specific teams. This, I believe, is a massive factor that many people are missing. players such as harry Kane have scored 18 times against Leicester in 15 appearances. This means that if he is currently out of form he may not be picked by other algorithms however I intend on factoring this into mine as even if he is out of form, he is likely to score against teams he enjoys playing.

Initial Plan (05/02/2023) [Zip Archive]

Final Report (12/05/2023) [Zip Archive]

Publication Form