I'm working on a machine learning model to forecast the win probability of NFL games. These are my predictions for this week. This is totally a work in progress and should NOT be used to make bets!
Team 1Team 1, Model OddsTeam 2Team 2, Model Odds
Buffalo Bills-117Miami Dolphins+117
Los Angeles Chargers-257Carolina Panthers+257
Dallas Cowboys-270New Orleans Saints+270
Detroit Lions-300Tampa Bay Buccaneers+300
Green Bay Packers-113Indianapolis Colts+113
Cleveland Browns-163Jacksonville Jaguars+163
San Francisco 49ers-426Minnesota Vikings+426
Seattle Seahawks-355New England Patriots+355
New York Jets-122Tennessee Titans+122
Baltimore Ravens-355Las Vegas Raiders+355
New York Giants-150Washington Commanders+150
Los Angeles Rams-426Arizona Cardinals+426
Pittsburgh Steelers-194Denver Broncos+194
Cincinnati Bengals-100Kansas City Chiefs+100
Houston Texans-194Chicago Bears+194
Philadelphia Eagles-233Atlanta Falcons+233
Interesting. You do have a few divergences from the odds.
reply
87 sats \ 3 replies \ @ken 10 Sep
I will mention that I'm using 2023 end-of-season statistics to generate the odds (until I have at least a few weeks of 2024 data). So if the team went through significant change, the odds could be way off.
reply
Are you familiar with the Elo model 538 used to use? The way they handled that is by moving each team partway back towards the mean from where they ended the previous season.
reply
48 sats \ 1 reply \ @ken 11 Sep
Elo model
Thanks, I've never heard of this! That's an interesting approach.
reply
I know they added a bunch of bells and whistles to it over the years, but I liked the simplicity of the initial model. The problem with simplicity is that it performs really poorly around major personnel changes.
reply
What are your inputs for the model?
reply
51 sats \ 3 replies \ @ken 10 Sep
Most of the inputs come from Pro Football Reference. I basically use a bunch of general performance indicators (win/loss ratio, total points scored, etc) along with offensive/defensive performance data (passing, rushing, penalities, etc) and do a binary classification.
I trained the model using statistics from every game since 2004.
reply
Neat. I've been wanting to do something similar to this for basketball (and eventually baseball, hockey, soccer, etc.).
Was the data fairly accessible?
I didn't get very far in looking into it, but it seemed like the gamelogs were behind a paywall.
reply
38 sats \ 1 reply \ @ken 11 Sep
I've built a similar model for NCAA basketball, and it looks like professional basketball data is available:
The basic data can be scraped from the tables for free. Deeper information might be behind a paywall, but I think you could create a basic model from the data that is freely available.
reply
Thanks. I only actually need the game logs and I'll eventually want to integrate college and international into the model.
reply