Simulating Best-of-Three Series with Machine Learning
Counter-Strike 2 (CS2) is one of the most-played esports titles, with over a million concurrent players each month and a competitive scene built around best-of-three (Bo3) map series. This project builds a machine learning model that predicts match outcomes from team performance metrics and map-specific history, then simulates each map in a Bo3 series to estimate a team's overall probability of winning the series — rather than treating the match as a single coin flip.
Modeled team strength at the map level instead of the match level, since a team's odds shift depending on which maps are in play — then ran series-level simulations to turn per-map win probabilities into a full Bo3 forecast.
Map-by-map simulation
Team performance metrics
Per-map and series-level
Team strength in CS2 isn't uniform across the map pool — a team that dominates on one map can be well below average on another. The model captures this by evaluating team performance metrics and historical results at the individual map level, rather than producing one overall rating per team.
Once each map has a modeled win probability for a given matchup, the Bo3 series is simulated map by map to estimate the probability of each possible series outcome — turning individual map forecasts into a single series-level prediction.
The project follows a structured pipeline from raw match data to series-level forecasts:
Each map in the series is treated as an independent probabilistic event based on the model's output, and the Bo3 outcome space (2-0 or 2-1 in either direction) is simulated to produce a series-level win probability for each team.
Map-aware match prediction has a few natural uses in the esports ecosystem:
Pre-match win probability graphics that account for the specific map pool in play.
Identify a team's map-pool strengths and weaknesses ahead of a series.
Give fans a data-driven view of series odds beyond raw team rankings.
Because map pool matters as much as overall team strength, forecasts that ignore map-level performance miss a big part of what actually decides a Bo3 series.
Simulating a series map by map, rather than predicting a single match-level winner, produces a forecast that better reflects how Bo3 series actually play out.