Fantasy Football and AI – The next season

If you aren’t familiar with my Fantasy Football series from last year, I built an AI assisted drafting agent based on data I collected from previous seasons. I then iterated over that setup to build an in season coach that determined my line up each week. AI and I did pretty well but ultimately we are still chasing the championship.

So now what? How do I improve the system? Well, I started over.

This off season I took all of the stats I could get from 2020-2025 seasons. I restructured my database and moved it all to my local home lab. The purpose of this was to be able to cost effectively train, re-train, throwaway, and train again multiple models using multiple strategies for each position until I could accurately predict the results of the 2025 season.

The result is a CatBoost and LightGBM system of models that has the following features:

  • Rolling Stats – 3, 5, 8 week rolling average of fantasy points
  • Vegas lines – spread, over/under, team implied total, implied win probabilty
  • Next Gen Stats: snap counts, target share, CPOE, rush yards over expected
  • Play-by-play: EPA per play, weighted opportunity share, red zone target share, goal-line carry share
  • Defensive matchup: rolling 5-week EPA allowed by the opposing defense at each position
  • Injury status: game designation, practice participation, teammate injuries
  • Schedule context: home/away, dome/outdoor, rest days, primetime

I tested XGBoost, LightGBM, CatBoost, NGBoost, LSTM, and Transformer architectures. CatBoost + LightGBM ensemble won — the gradient boosting models crushed the deep learning approaches on tabular data (MAE 2.95 vs 4.68 for the LSTM).

Using this, I then build a brand new draft simulator that tests various selection strategies based on position in the draft, draft type, and number of teams.

The infrastructure is setup for next season. I’ll be going into more detail on each aspect of this setup throughout the off season. If you are interested in using the model feel free to reach out!

Comments

Leave a Reply