Scraping FBRef xG data with Python

In the realm of sports analytics, FBRef has recently unveiled an essential update: the availability of Expected Goals (xG) data for previously uncovered divisions. This pragmatic addition opens doors to nuanced insights, particularly valuable in the world of sports betting. In this blog post, I pragmatically explore these developments. Using Python and adept web scraping techniques, I dissect this fresh data.

Continue reading “Scraping FBRef xG data with Python”

BeatTheBookieApp – Ensemble performance

In this blog post, we will explore the performance dashboard for the BeatTheBookie App’s ensemble model. This powerful predictive model combines the expertise of multiple individual models to forecast football match outcomes. By leveraging insights from the performance dashboard, we can make informed betting decisions and increase our chances of success. Let’s dive into the details of this game-changing feature.

Continue reading “BeatTheBookieApp – Ensemble performance”

BeatTheBookieApp – Ensemble predictions

The BeatTheBookie App is a web data app that provides me with predictions for my daily betting. However, there has always been something that bothered me a bit: the comparison to the odds of a bookie. Each bookie uses a different margin, making it difficult to identify value and determine the amount of value a bet offers. Fortunately, this issue is addressed with the introduction of the Ensemble predictions dashboard.

Continue reading “BeatTheBookieApp – Ensemble predictions”

BeatTheBookieApp – Model performance

The BeatTheBookie App is a web-based data application that grants me access to predictions generated by various models that have proven their performance over time on my blog. However, determining which model to utilize for a specific match can be challenging. Thankfully, the model performance dashboard offers the solution to this dilemma. By exploring the dashboard, I gain valuable insights into the theoretical performance of the different models in past scenarios. This information aids me in selecting the most suitable model for each match, increasing the chances of making informed betting decisions.

Continue reading “BeatTheBookieApp – Model performance”

BeatTheBookieApp – Model predictions

The BeatTheBookie App is a web data app that provides me with predictions for all models that have demonstrated their performance throughout the history of my blog. As it has already been proven, there is no single best model for all divisions. Therefore, I wanted to be able to compare predictions, as each model takes into account different aspects of past performance. The result is the model predictions dashboard.

Continue reading “BeatTheBookieApp – Model predictions”

Matching Team Names in Sports Betting Data: A Fuzzy Matching Approach

As a data engineer with a focus on predictive modeling for sports betting, one of the key challenges is matching team names from different data sources. In this blog post, we will explore how to use fuzzy matching to match team names from different sources and discuss an example implementation in Python. Additionally, we will introduce a new endpoint from BeatTheBookieDataService that provides a comprehensive matching of team names.

Continue reading “Matching Team Names in Sports Betting Data: A Fuzzy Matching Approach”

How To: Run TensorFlow in Exasol Community Edition

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. Additionally with the latest update I also added the packages and description needed for all my web scrapping scripts.

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

HowTo: Losing streaks & stake size

I regular listen the Business of Betting Podcast, when driving to work. There I stumbled over a episode, where a experiment with a 60/40 coin was discussed. People were provided a modified coin, which shows head with a probability of 60%. Knowing this fact they should choose a stake, which they think maximizes their profit, and flip the coin 100 times. The result of this experiment was really surprising: Despite a positive edge many people gone busted. But why did this happen?

Continue reading “HowTo: Losing streaks & stake size”

Connecting to Exasol via Python

As mentioned in the last post, I am now going to use TensorFlow to build my first own predictive model. But before, there are several small steps, which need to be taken. At first I want to explain, how your able to read and write data via a Python script into Exasol. This is needed to read the different predictive variables and write back results of a prediction into the database when developing models.

Continue reading “Connecting to Exasol via Python”

Calculate odds for lay markets based on back markets

Some days ago I read an interesting article about how bookies arrange their margin to the possible outcomes. All bookies keep this of course secret as this offers them a specific range, where they can shorten or lengthen the odds depended on the amounts of placed bets. But I need this information, because I simulate my prediction models for back and lay markets, with just the odds of the back markets. This post will explain, how you should calculate the bookie margin, and how you should not do it.  I handled this topic a little bit naively during the development of my Poisson model, which causes some problems.

Continue reading “Calculate odds for lay markets based on back markets”