The world’s leading publication for data science, AI, and ML professionals.

EPL Fantasy GW7 Recap and GW8 Algo Picks

Our Moneyball approach to the Fantasy EPL (team_id: 2122122)

Top Team for GW6
Top Team for GW6

If this is the first time you land on one of our Fantasy EPL Blogs, you might want to check out some of our original EPL blogs in my Medium archives to get familiar with how this project started and the improvements we’ve made over time.

Top 100 FPL Team Stats for GW7

We saw more normal numbers last week at the top, where top 100 players averaged around 72pts, with some of the top players scoring in the 40–50pts range, which makes us feel a little better about ourselves since we scored on par with the top100 average of 72pts.

Most Selected Goalkeepers by Top100

Most Selected Defenders by Top100′

Most Selected Midfielders by Top100

Most Selected Strikers by Top100

We used this data to create the team below which is a blend of the most selected players by Top100:

Most selected Team Formation by Top 100

These stats make sense as most of the top players are trying to capitalize on offensive midfielders and strikers with the 3–4–3 formation.

GW7 Team Performance Recap and Overall Stats

We had all of our teams score above average, and close to the average of the top100 players in the world so we had a good week overall. We have to mention the absolutely atrocious referee mistake that failed to disallow Lamptey’s goal, which cost us at least -8pts, sine Regulion was getting clean sheet + was also on the bonus list until Lamptey scored and they actually shifted the bonus points to him. Other than that we bet on the top two captain recommendations from our algo, and both Salah and Kane did well enough.

We also participate in the FanTeam version of the FPL, where we had another strong week in two of our teams.

Useful Stats to Inform our GW7 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 LIV, WOL, FUL, LEE, and MCI have some tough games coming up, so our Algorithm might not be picking many players from those teams. CHE, LEI, TOT, MUN, CRY, EVE and WHU 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, CHE, ARS, WHU, BHA, and SOU. We should try not to have too many defensive players from SHU, WBA, AVL, FUL, 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 – BHA-BUR, CRY-LEE, and LEI-WOL.

Inversely, we might want to have more attacking players from games with high odds for Over 2.5 such as MCI-LIV, CHE-SHU, ARS-AVL, WBA-TOT, EVE-MUN and WHA-FUL.

Referee Stats

From the stats below it appears that there is a higher chance for penalty given in games: LEI-WOL, MCI-LIV, BHA-BUR, and CRY-LEE , so we recommend having penalty takers for some of these teams. Looks, like the games WBA-TOT, ARS-AVL and EVE-MUN 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, TOT and LIV 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

This table can reveal 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, SOU, LEE, WOL and WHU, and LEI 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, WBA, MUN, MCI, and CRY, so it would be a good idea to be very selective with which players you pick from those teams.

Defensive vs. Offensive Team Stats

So far, having offensive players from TOT, LIV, EVE, LEI, CHE, AVL, and SOU seems to be a good investment.

While having too many offensive players from BUR, SHU, WBA, FUL, WOL, MUN, and CRY seems to be a poor investment, unless you have the one player who scores 70% of the goals such as Zaha at CRY.

Having defensive players from AVL, ARS, WOL, MCI, TOT, CHE, and LEI seems to be a good investment.

While having defensive players from FUL, WBA, LIV, BHA, MUN, and LEE, seems to be a poor investment.

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. Our recommender thinks you should go for Kane, Son, Bowen, Werner, Auba, KDB or Doherty.

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 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:

  1. Exclude Injured or Suspended players
  2. Exclude Players from teams with high FDR
  3. Exclude Players from Teams without Fixtures in GW1
  4. Cannot have more than 3 players from the same team
  5. 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

Our Team for GW8

We will always use our top scoring team from last week, and try to do maximum of 1–2 transfers. Since we’re publishing this blog on Wed and there are still European games tomorrow, we will wait to make transfers until Friday morning, so the team that we’re changing below might change by one player. Not sure yet what taht change would be but if Regulion, turns orange or red, we might look for a swap there with a DF from some of the teams with easier upcoming schedules – WHU, MUN or CRY.

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!


Related Articles