I started Predictaball in the summer of 2014 as a way of applying my methodological research in building ensemble classifiers with Evolutionary Algorithms to a real-world application. I thought football prediction might be fun, despite not being an overly keen football fan, and got an initial implementation running fairly quickly.
I've refined the match prediction method since then, firstly with a move to a Bayesian framework and then implementing a Elo-like rating system for team strength. I even had a brief attempt at producing an automated staking system, but quickly found this wasn't profitable (who would have thought?!).
Alongside the machine learning aspect, I've also developed the skills required to deploy a model into a production environment, such as: automating data collection and prediction, database design, web scraping, AWS, using the Twitter API for a bot that displays daily match forecasts, and now web development. Over the years I have developed Predictaball from a single script that predicts matches stored in CSV files into a fully modularised backend system using a Postgres DB that can be easily extended to other sports (well, given a bit of time and motivation). Each day a script runs that: updates the previous day's results and adjusts the team ratings, scrapes next week's fixtures and forecasts their outcomes, tweets the Premiership predictions for today, simulates the end of season standings, and finally builds this website.
Building this web app has forced me to de-couple the main components (data update script, database, and web app) and make everything more reliable. Tempted by a free year of AWS, I've moved most of these components to the cloud. This has gone so smoothly that I've since used AWS for my personal website and other projects.
I've got several ideas in the pipeline for when I find the time, such as using machine learning to improve the rating system, perhaps separating home and away strength, as well as providing a pan-Europe rating system that allows for inter-league comparison. I've been saying for years that I'd like to extend Predictaball to additional sports. The backend is ready, I just need to obtain some data and build predictive models.
Predictaball is developed by Stuart Lacy, and can be found on Twitter.