Machine learning powered predictions for college football games using historical data, team metrics, and game conditions.
This project emerged from my passion for college football and curiosity to try and build a machine learning model. I wanted to create a prediction engine that could compete with professional handicappers while providing transparent insights into how predictions are made. The challenge was to develop a system that could process complex historical data and generate accurate predictions for future games, no matter if those teams consistently played each other or not.
The model uses gradient-boosted trees (XGBoost) inside a scikit-learn pipeline to predict a game's margin (home minus away) and total points, from which the two team scores are recovered. Crucially, it is trained only on information knowable before kickoff — pre-game Elo ratings, rest days, home field, schedule, and weather — and validated on a true temporal holdout (train on 2008–2010, test on the unseen 2011 season) so the reported accuracy isn't inflated by data leakage. On unseen games it identifies the straight-up winner roughly 70% of the time with a margin error of about 14 points, beating both naive-average and Elo-only baselines. (Betting lines were unavailable in this dataset, so the model is benchmarked against statistical baselines rather than the Vegas spread.)
Simply navigate below and select the two conferences from the drop down list. You will then select the teams you wish to choose, which will then predict the scores and provide the spread and model weights.