I follow college athletics very closely and I constantly read both human and computer polls online. Looking at my favorite computer poll only took into account the final score of the game, but was still mathematically able to accurately predict outcomes of sports games. I thought I would be able to not only create a more complicated algorithm, but also make my own equations to more accurately measure success of college football teams.
What it does
It ranks every FBS college football team (total of 129) based on past games in a season. It takes into account final score, home field advantage, overtime, total offense, and total defense. It then assigns an Elo rating to every team and ranks them accordingly.
How I built it
Entirely in python, using the libraries of leather and PrettyTable to create charts and tables to display data generated by program. Majority of coding time was spent tweaking statistical equations to accurately rank teams.
Challenges I ran into
Web scrapping was a real challenge and was not worth the time I had put into it. Eventually, I just hard coded each team as its own dictionary and made a function call for each new game, having to enter the data myself.
Accomplishments that I'm proud of
I was able to rank teams very accurately, having 8 out of the 10 AP poll teams in my own rankings. The current code runs through week 4 of the 2017-18 season and I still have University of Alabama (the eventual National Champion) as my #1 ranked team.
What I learned
Lots of mathematical and logical thinking, as well as a bit of statistics. I reinforced much of the python knowledge I knew and learned how to use leather and PrettyTables for displays.
What's next for College Football Rating System
The current version only goes through week 4, so I will tweak it to run the entire season. Next, I will work on much of the front-end work to make the displays of the data clearer. Finally, if it works well, then I will put it online and share my rankings with the college football community.