We have the game stats of all professional Dota 2 tournaments for the last 3 years. The historical data is our teacher — using it we trained AI based on machine learning models to predict the future. In this project we are focused on predicting player’s Fantasy Points on the International 2018, check it out.

How it works


The figure shows the scheme of our prediction algorithm. There are two machine learning models: the first one predicts statistics that contribute fantasy points (such as Kills, Deaths, XPM, GPM, etc.), and the second one predicts the probability of winning the future match. The models were trained on the historical data of the professional tournaments. After we got predictions for player's match stats, it remains only to multiply them with corresponding coefficients and gold/silver card bonuses (if you choose them) and we have predicted FP for a single match. The predicted win probability is used as additional information for FP prediction model (usually winning player will receive more fantasy points than losers) and to run tournament simulation when we don't know who will play with whom in the future. By running simulation, we get an estimate of the probable number of matches player will play next day (this is very important in playoff stage) and finally — the total number of fantasy points for the day.

Fantasy Points Prediction

The following figure shows our fantasy points predictions for two players: w33 (paiN Gaming) and Silent (Winstrike).

2018-08-16 15.46.09.jpg

The horizontal axis corresponds to a sequence number of the match. The vertical axis shows fantasy points. Solid lines show how our predictions changed match to match and the crosses correspond to a real amount of fantasy points scored by the player.

As you can see, a predicted value almost never matches the actual FP exactly. All predictions contain a deviation, according to our validation on historical data it does not exceed 15 points in the most (90%) cases. The prediction error happens because the machine does not know everything about player: it doesn't know player's feelings during the tournament, it does not take into account team's strategies, it just finds patterns in the vast amount of historical data. FP predictions are not exact, but more important is that we can compare the predictions of two players: the more predictions differ, the more likely one player will get more fantasy points than another. If you want to get maximum total fantasy score, it is reasonable to pick players with maximal predicted FP every day.

Win Prediction and Tournament Simulation

To make FP predictions we have to predict how many matches the player will play next day and which of them will be winning. Here comes our supporting machine learning model that gets information about any pair of teams and estimates their win probability. For instance, now the model predicts the chance that Team Liquid will beat OG as 61%, which means that if Team Liquid could play versus OG 1000 matches in a row and their skills, fatigue and strats will not change during all those matches, then about 610 games will be won by Liquid.

Having predictions and a known tournament grid we make a simulation of 1 million possible outcomes of The International 2018 and here are the table of probabilities that a team will reach a specific place/bracket on this tournament.


Favourites of our model are VP, Liquid, PSG.LGD. But, the probability 20% of winning the tournament is still not very high (1 of 5). So, be rational if you decide to make a bet ;).

Stay tuned and subscribe to our Facebook and Twitter! Suggest us what else to predict.