Esports match prediction
[One sentence: what it predicts, on what data, and what you were trying to beat.]
The problem
[Two paragraphs. Start with why this is harder than it looks: esports rosters turn over constantly, patches reset the meta, and any given team has a small sample of matches under its current lineup. A model trained across a roster change is learning about a team that no longer exists.]
[Then the blind spot you were attacking. "Predict the favourite" is a strong baseline and most naive models never beat it — say what signal you thought was being left on the table, and whether you were right.]
What I built
[Player & team stats]
[Roster changes]
[Per-map win rates]
[Head-to-head]
[Patch / meta window]
[Time-aware CV]
[Probability calibration]
[Log loss / Brier]
[Held-out season]
[Walk through the feature engineering, which is where the work actually is. What window you used for rolling form and why. How you handled roster changes, patch boundaries, and teams with too few matches. What you did about class imbalance in a favourite-heavy dataset.]
Two things worth stating explicitly, because they are what a technical reader will look for first:
- The baseline. [What a no-model prediction scores — always picking the higher-ranked team, or the closing odds if you have them. A model is only interesting relative to this.]
- Leakage. [How you guaranteed no post-match information reached the features, and how the train/test split respected time.]
# A short excerpt of the feature construction beats a paragraph describing it.
Results
What I'd do differently
[One honest paragraph. For a prediction model the most credible answer is usually about evaluation rather than architecture — a leak you found late, a split that was not time-aware, or a metric that flattered the model.]