Over the break we had some time to improve our code. Up to now, we had been ignoring the scoring rules for the different fantasy leagues (e.g., ESPN, Sky, etc..) and optimised our swaps based on the rules of the Fantasy Premier League. As you will guess, the scoring rules for the different leagues are very different in some cases. For example, Sky allows you to change your captain twice and the Daily Mail allows you to take players off the bench in the middle of a gameweek. Also, they all give slightly different points to different events (i.e., shot on goal, goal, assist etc.. by a defender, forward etc..) So what does this mean for an AI algorithm?
Well, the player and team performances the SquadGuru learns do not change. What changes is the number of points it estimates these players will generate. That means, if the rules for FPL give more points to assists or goals from a defender than for the Daily Mail say, the algorithm will get its top players slightly wrong – it all depends on the balance between the points against performance, that is, a defender who scores goals will obviously get more points than one that does not in any case. So, we’ve been going with that slight inaccuracy since the the beginning of the season and it seems we haven’t done so bad after all.
The major issue though, arises when you try to optimise your swaps for different leagues. Indeed, FPL allows you one swap per week (and extras at a cost of virtual points) while other leagues simply have different rules for swaps (as discussed above). Given the SquadGuru’s best performing players, it will have to optimise the swap according to these rules. For some of these rules, e.g, where you can redo your team halfway through a gameweek, this means encoding quite complex rules with respect to club-based selection constraints (e.g., you are not allowed to select more than X from the same team) and others. So far, we had been playing with the simple rules of the FPL, and again, it has not worked so bad for us.
Over the last two weeks, we’ve managed to encode the above rules into the SquadGuru, and hopefully this will further improve performance. However, for leagues such as Sky, that has a very different scoring system (where you can score for tackles or 60+ passes…), it’s starting to make less sense for us to encode the rules for these as we simply don’t have the data to optimise for such rules (unless we pay a lot of money to OPTA or the like). So we may be dropping Sky for now and focus on the rest.
Also, note that the Telegraph Fantasy Weekender league is starting today – for us that just means computing a whole new team for each day of the game week and not optimising more than the current gameweek ahead – this reduces the uncertainty in our predictions…which hopefully should work out to our advantage.