EPL Fantasy GW5 Recap and GW6 Algo Picks
By: Dilyan Kovachev
Tags: Predictive Analytics, Fantasy Football, Data Science, Soccer, English Premier League

Useful Stats to Inform our GW6 Picks

Since we added a lot of new stats to our Algorithm this year, this Blog will evolve to have more stats and graphs and less text over time. Let’s start with the Fixture Difficulty Rating (FDR) for the next three game-weeks below:

Looks like MUN, SHU, SOU, ARS, LEE, and NEW have some tough games coming up, so our Algorithm might not be picking players from those teams. CHE, TOT, CRY, BHA, WBA, and EVE seem to have more easy schedules over the next three weeks.

Bookie Odds

We will try to stack up on players from teams that have a higher than 50 % chance of winning such as TOT, LIV, MCI, WOL, ARS, and BHA. We should try not to have too many defensive players from CHE, LEE, LEI, WBA, WHU, NEW, and BUR.

Teams with higher probability to draw, especially when the game is combined with high odds for Under 2.5, might be good for selecting defensive players because if the game ends 0:0, that will result in lots of bonus points. Combined with the Under/Over Graph below, we can identify the following games with higher probability of at least one clean sheet — FUL-CRY, BHA-WBA, and WOL-NEW.

Inversely, we might want to have more attacking players from games with high odds for Over 2.5 such as WHU-MCI, LIV-SHU, MUN-CHE, ARS-LEI, and AVL-LEE. Again, the odds from last week played out pretty well as most games predicted had over 2.5 goals!

Referee Stats

From the stats below it appears that there is a higher chance for penalty given in games: WHU-MCI, BUR-TOT, SOU-EVE, and FUL-CRY, so we recommend having penalty takers for some of these teams. Looks, like the games AVL-LEE, MUN-CHE and BUR-TOT have refs that like to give a lot of cards, so expect to lose some points there from yellow cards, but hopefully no red…

Team Penalty Stats

On top of the referee probability to give penalty, let’s also look at what teams have been given the most penalties over the last 5 seasons, to see where we get the highest combined probabilities. From the graph below we can conclude that LEI, CRY, MCI, MUN, and TOT are most likely to get a penalty.

Projected Starting Lineups

Before we run our final team selector, let’s take into account the predicted starting 11 for each team.

Pay attention to the doubtful player names on the right and also the the most recent injury news updates below:

Team Cumulative ROI Stats

With five gameweeks behind us we finally have enough stats, to look at which teams are considered good investments overall, and which teams have a lot of overpriced underperforming players. Teams are sorted by avg_pts_per_player, so to no surprise AVL, EVE, WOL and WHU are the teams at the top of the list, since they have exceeded their expected performance given their player prices. Some of the more overpriced, underperforming players can be found in FUL, BUR, SHU, MUN, MCI, NEW, so it would be a good idea to be very selective with which players you pick from those teams.

Captain Recommender

Our approach takes the predicted points for the upcoming game, probability that the player takes penalties, corners, or free kicks, a coefficient for the player’s aerial threat from the past 4 seasons, the likelihood of their team scoring 2 or more goals, and blends all of those in a normalized way into a final captain_choice coefficient. The coefficient is then discounted by an opponent_resistance score, based on the player’s next opponents adjusted FDR and normalized score for defensive strength this season. Example of what the Pandas DF looks like below:

Based on that formula, here is the list of the Top15 recommended captains for this GW. Lots of good options there, so not an easy choice by all means. If you want to play it safe, seems like Salah, Mane, Kane, and Son should be among your top choices.

Predictive Models (Player Stats)

It’s time for the crown jewel of this year’s improved Algorithm — the predicted player stats. After we layer in all the FDR, bookie coefficient, ref starts, projected lineups and injuries, there are two major metrics that we take into consideration when tuning our Team Optimizer for the next n-gameweeks team selection — predicted total points and expected value (ROI). Below are the stats for each metric, also broken down by position.

Projected Total Points — Top 25 Players

Projected Expected Value (ROI) — Top 25 Players

Projected Points — Top Goalkeepers

Projected Points — Top Defenders

Projected Points — Top Midfielders

Projected Points — Top Strikers

As you can see there is a large number of options we can choose from for each position, so we will be plugging a lot of the stats above into an Optimization Function in Python, which will output the team with the highest expected total points, given our budget constraints and other metrics that go into our decision making process. Some of the preliminary filters, applied before the Team Selector Code kicks in, include:

Exclude Injured or Suspended players Exclude Players from teams with high FDR Exclude Players from Teams without Fixtures in GW1 Cannot have more than 3 players from the same team Must have 15 players total (GK=2, DF=5, MD=5, ST=3)

Optimize Budget for most used formation

Most used formation by Top100 players last week was 3–4–3, so we will present optimized team for that formation. As you can see below, the model first looks at parameters that tells it if it should optimize towards full squad of 15 players, or towards a specific formation with 11 key players and 4 cheap fillers. For the fillers, it first looks at preferred formation and uses that to decide how many fillers to get per position. The model then subtracts the total amount spent on the 4 fillers from our initial budget and spends the leftover budget on the key 11 players, given the optimization function and model constraints.

Example1: Optimize towards max expected points

Example2: Optimize towards max Expected Value (ROI)

The Value team in this case looks pretty appealing and balanced and if you are worried about lots of injuries and rotations of key expensive players, then this approach could be a good way to protect yourself from that.

Our Team for GW6

We will always use our top scoring team from last week, and try to do maximum of 1–2 transfers. Since we played our wildcard last week, we didn’t need to make any major changes, so we just got Kilman, who has the promise to become major value long term if he keeps getting 60+ minutes of play regularly, and even if he doesn’t play some weeks, getting him at 4M before his price goes up by 0.2 or more makes him a great substitute DF to have and free up money for more expensive offensive players. For captain we’re going with the top recommended player — Salah.

Conclusion

The way the season has been going, we recommend shifting away from expensive defenders and trying to just have three mid-range defenders and stack lots of chips in midfield and offense, since it has been raining goals so far this season, and there is no indication that things might be slowing down anytime soon. Thanks for reading as always and good luck this week!