Simple Football Predictor: Week 11 Predictions and Testing Other Models
By: Nathaniel Selevan
Tags: Python, Data Science, Predictive Analytics, Scikit Learn, NFL

So I’ve noticed it usually takes two weeks to add new data to my dataset, so I’ve decided that on the off week I will play around with different concepts in data. This week, I’ve tested out a few different types of classifier and regression models.

Week 10 Results:

Week 10 and Total Performance

The model had a decent bounce back this week, reaching a score of 8/14, an improvement of 2 games vs last week. The model did okay or above expectations in most confidence tiers, but struggled significantly with an 0/3 in the 60–65% range.

For the season, the model continues to struggle a lot in the 50–55% range, and last week’s week performance in the 60–65% range brought down the season total to 50%.

The model that predicts against the spread went 5–7–2, a decrease in performance from last week’s 7–7 performance.

Different Model Testing:

So in the past I’ve used a Logistic Regression model for predicting the winner, and an Ordinary Least Squares Linear Regression Model for predicting the spread. However, there are other models one can use to make these same predictions including Support Vector Machines (SVM), Decision Tree Classifier/Regressor, and Random Forest Classifier/Regressor. I will not go into the math behind each one, but will provide the necessary metrics from our test data for each one.

Classifier (Predicting the Winner):

As a reminder on which metrics are used to judge classification and regression models please refer to last week’s article. As always we will use accuracy as our chief metric for classifiers.

Logistic Regression:

Accuracy 64%; Precision 64%, Recall 80%, F1 71%

Support Vector Machines:

Accuracy 61%; Precision 51%, Recall 90%, F1 71%

Decision Tree Classifier:

Accuracy 58%; Precision 62%; Recall 59%, F1 61%

Random Forest Classifier

Accuracy 60%, Precision 62%, Recall 70%, F1 65%

We see that the Logistic Regression model has the highest accuracy, though it does show a major bias towards predicting the home team.

Regressor (Margin of Victory):

OLS:

OLS Metrics

MAE: 11.57

MSE: 216.48

RMSE: 14.71

R^2: 0.0961

SVM:

SVM Metrics

MAE: 11.79

MSE: 221.26

RMSE: 14.87

R^2: 0.0402

Decision Tree Regressor:

Decision Tree Regressor Metrics

MAE: 15.57

MSE: 416.85

RMSE: 20.42

R^2: 1.0

Random Forest Regressor:

Random Forest Regressor Metrics

MAE: 11.95

MSE: 228.68

RMSE: 15.12

R^2: 0.8623

The Decision Tree Regressor and Random Forest Regressor each have high R² scores, but in my opinion they seem a little to high to be trustworthy as a chief measure. Based on the other 3 metrics, I believe the OLS model is the best way to go.

Predictions:

Predictions vs Spread (as of 4:33PM Wednesday)

Seahawks (-3) vs Cardinals: Cardinals

Chargers (-8.5) vs Jets: Jets

Ravens (-6) vs Titans: Titans

Panthers (unavailable) vs Lions: Panthers

Browns (-3.5) vs Eagles: Eagles

Texans (+2) vs Patriots: Texans

Jaguars (+10) vs Steelers: Jaguars

Saints (-5) vs Falcons: Saints

Washington (-2) vs Bengals: Washington

Broncos (+3) vs Dolphins: Dolphins

Colts (-2) vs Packers: Colts

Vikings (-7.5) vs Cowboys: Vikings

Raiders (+7) vs Chiefs: Raiders

Buccaneers(-3.5) vs Rams: Rams

Quick Observations:

The model still seems to shy away from large predictions for margin of victory, which could explain why its average error is11.5 points per game.

Secondly, there seems to be more than a few games where the model predicted a winner and a margin of victory that don’t matchup, with the probability of victory ranging to higher amounts than previously, this is probably a weird quirk in the models.

Finally, the Jets are back in action and back to having low odds.

I am currently enrolled in the Applied Data Science Professional Certificate program at the Thayer School of Engineering at Dartmouth College. Please reach out to met via LinkedIn (https://www.linkedin.com/in/nathanielselevan/) or comment below with all questions, comments, project suggestions, or to act as a mentor. All likes and comments will be well appreciated.