xG data journey – What are ExpectedGoals?

After I realized my available data is definitely not enough to beat the bookie, I decided to start a new data journey and take a look at some more advanced statistics. And what could be better suited as Expected Goals (xG). This statistic is used more and more to explain this specific luck / bad luck factor, you feel, when watching a football match. In the first part of this journey I will explain, what are xG and what they tell you about a football match. Continue reading “xG data journey – What are ExpectedGoals?”

Retrospective for Bundesliga season 2018/19

Before the new season will start I should take a look at the last season. Everybody following my pick history already knows: the last season again was very disappointing! But I again have to point out, that I of course did not expect to find the “holy grail” after just two seasons of model testing. So how bad do the numbers really look, and what are the most important “lesson learned” are….

Continue reading “Retrospective for Bundesliga season 2018/19”

Overcome your confirmation bias (guest blog)

When you follow my twitter account, you may have noticed, since several month I started also writing blogs and articles for other platforms. Even so these are most of the time not about sports betting, I thought it would be a good idea, to share them also via my blog and also share some thoughts about the topics as the main message is often the same: Get the most out of your data!

Continue reading “Overcome your confirmation bias (guest blog)”

A data journey – market values (part 2)

In the last post I described, how I collected the market value data as the first step of my journey. The second step is – in my opinion – one of the most important ones. Get to know your data! Of course many predictive methods can be used as a black box. But that’s something I would not suggest. At least you should understand how your values are distributed. And it’s even better, when you build some kind of domain knowledge. To know your data offers you the possibility to shorten the training process of you predictive models. And visualizations always help to better understand your data. Continue reading “A data journey – market values (part 2)”

A data journey – market values (part1)

When a rich club in Germany goes through a bad performance phase or loses an important match, we like to use the phrase “Geld schießt eben keine Tore”. What means more or less, that big money doesn’t ensure goals. But the overall acceptance is of course,  that richer clubs are expected to win more often as they got the money to buy the best players. This inspired me to start a data journey about market values in the big 5 European leagues: What do the market values tell about the development in the different leagues? How do teams perform in relation to the money they spent? Does the market value of a team has a predictive significance?

Continue reading “A data journey – market values (part1)”

Four things I have learned after using a neural network for 6 months

This time, after over 20 matchdays in the German Bundesliga, I don’t want to take a look at the predicted results. I used my Team Strength MLP now for about 6 months. During this time I analysed the predictions and tried to learn some more stuff about deep learning. So let’s summarize some lessons I have already learned and what could be improved for my model for the next season.

Continue reading “Four things I have learned after using a neural network for 6 months”

Exasol Python UDF web scraper for Bundesliga match day fixtures

The hardest part of sports analytics is getting data! Not for nothing there are companies, which earn their money just with sports data. But if you are not able or do not want to pay such amounts of money, you got just one possibility: scraping the data from the Web. In an older post, I described a R web scraper. As this one was no longer working, I needed a new one. What brings us to this post. This time I will describe, how to create a web scrapper for static HTML sites with Python and how you are able to implement such a web scrapper as a User Defined Function (UDF) in Exasol.

Continue reading “Exasol Python UDF web scraper for Bundesliga match day fixtures”

How To: Run TensorFlow in Exasol Community Edition

Attention:

As Exasol changed the way, how to build a customer Python3 docker container, this instructions no longer work. I have to update the single steps.

There is one big reason, why I have chosen Exasol as a database for my football analytics and predictions: Exasol is capable of executing Python and R code inside the database. Your are able to put your statistical calculations and predictive models to your data. The feature User Defined Functions (UDFs) provides the possibility to implement every logic which you normally code in Python or R. This is a really efficient way to extent plain SQL with some predictive functionality like the execution of TensorFlow models.

In this blog post I will explain, how you extend the Exasol community edition with all needed Python3 packages to execute Tensorflow models.

Continue reading “How To: Run TensorFlow in Exasol Community Edition”

MACD analysis: Man City – Liverpool (03.01.2019)

The 2018/19 season in the Premier League started entirely normal. After a record-breaking season Manchester City was of course favoured to win again the title with Liverpool just having an option as the runner-up. But things changed in December and, according to both coaches, we can expect the match between “the best team in the world” and “the best team in the world”.

So which match could be more usefull to take a look at the MACD analysis for both teams and get a better feeling how this type of analysis can be used to identify the performance trend of a team.

Continue reading “MACD analysis: Man City – Liverpool (03.01.2019)”