Using Machine Learning to Project Fantasy Football Scores
Fantasy football is a great application machine learning. There are 32 NFL teams each with 53 players on their active roster and an additional 10 players on their practice squad. Each team fields 11 players and these players are constantly rotated to create different personnel groupings. Over the course of a season players build consistent profiles of how much usage they get in every game and teams build consistent profiles of what they allow opposing offenses to accomplish.
Even with all this data, there is a high level of volatility for each player's individual performance from week to week. A player is capable of scoring 60 fantasy points in one game and then -4 the following week.
I'm going to focus on three football positions: running back, wide-receiver, and tight-end. These three positions are the core makeup of a fantasy football roster and they share a common methodology for earning points. These players earn points from yards they move the ball down the field, passes they catch, and touchdowns they score. They can also earn negative points for fumbling the ball on the ground and losing yardage. There are other ways to score points such as completing passes downfield to another player or scoring a 2 point conversion, but these are rather uncommon and are negligible for prediction purposes.
The machine learning method uses linear regression. The goal of the algorithm is to use past data to predict each player's future performance as accurately as possibly. The ideal error distribution looks like this:
After two weeks of collecting results, here is how the algorithm stacks up to its goal.
You can see in the charts above that red curves are closer to the ideal than the blue curves. This is because it has an additional week of training data to learn off of. With one week of training data the algorithm produced a median error of 4.18. After two weeks of training data the median error improved to 3.36 (a 19.6% increase in accuracy). My goal is to continue to train the algorithm and see just how close it can come to being perfect.
You can check out this week's projections here.