In this blog post, we'll take a look at how we are using Azure Machine Learning to predict the outcome of games of the UEFA Euro 2020 football championship. Is man or machine better in predicting the outcome of football games?
At Codit we are always looking for fun, challenging and interesting internal projects we can use to train our colleagues in new technologies. With the UEFA Euro 2020 football tournament coming up, the idea was born to replace the age-old tradition of using Microsoft Excel to register and track people’s predictions for the games with an application in Azure. With this, everyone within our company can join in predicting the outcome of games. Game results are automatically processed.
Next to having colleagues competing with each other, we will also develop AI models based on both historical and current data to predict the outcome of games. It will be very interesting to see if man or machine is better in predicting the outcomes!
To create all this functionality, we need the following components:
This resulted in the following high-level architecture:
As shown in the diagram above, we will use HTTP triggered Azure Functions to host our APIs and Time Triggered Azure Functions to periodically retrieve the game schedule, game results and calculate the points each user has earned.
The HTTP Triggered Azure Functions will be available through Azure API Management where we will also implement OAuth and caching of GET requests. The front-end and AI implementation will use the APIM layer to call the APIs.
Finally, we will use Arcus Observability (https://observability.arcus-azure.net/) to push all our logging to Application Insights.
Since we as Codit are a data driven company, we want to see if we can use data to perform better than the average human player. Or even better: beating the experts! For this we are using two approaches; each approach is taken up by a small subteam:
For both approaches, we start with a simple classification model that just predicts win, lose or draw. Later we will look at predicting the number of goals. We are using the Azure ML environment for all the models.
Once the models are there, we create an Azure function to act as an artificial player. It will call the model for each game and send the outcome back the APIs.
In the coming weeks we will be posting more blog posts about the technical details of the application, the AI models and how the AI predictions stack up against the predictions of our Codit colleagues!
https://www.codit.eu/blog/uefa-euro-2020-tournament-predictions-part-two/
Door: Matthijs den Haan en Pim Simons, Codit