I’ve been quietly training an army—of decision trees. After months of crunching tournament spreadsheets and scraping results, I now have a working machine-learning model that predicts how hard your list is likely to punch above (or below) its weight before dice even hit the table. Here’s the elevator-pitch version of what’s happening under the hood—and why I’m excited.
Why Bother?
- Gut checks are great, but numbers don’t lie (often). We already eyeball speed, nerve, and unlocks; the model lets us quantify how those trade-offs have actually translated into wins across real events.
- Better seeding & streamlining for TOs. Imagine handing players a pre-event workbook that highlights spicy matchups and projected upsets.
- Content fuel. More data means sharper blog posts, arm-chair coaching, and arguments that last well past round six.
How the Sausage Gets Made (Short Version)
Stage | What Happens | TL;DR |
---|---|---|
1. Pre-Tourney Parsing | PDFs → list stats (unit counts, avg speed, “Power Concentration,” etc.). | Every army becomes a row of ~40 features. |
2. Post-Tourney Merging | Script marries those features with actual game results, normalizes names (because “Jon” ≠ “John”), and calculates _diff columns (my list – your list). | One row per game with 80+ numbers. |
3. Model Training | RandomForestClassifier learns patterns from historical _diff features. | Trees vote on who wins next time. |
4. Future Reports | For any fresh event, the model runs round-robin predictions, sums probabilities, and spits out an ML Score for each list plus a heat-mapped matchup matrix. | Instant meta snapshot—no hindsight needed. |
Early Findings (And a Healthy Caveat)
TL;DR: Speed gaps and “power-concentration” gaps keep bubbling to the top of the feature-importance charts… but remember this is Kings of War big, machine-learning small right now.
What I Did | Quick Take | Why You Shouldn’t Over-react |
---|---|---|
Gini + permutation importance flagged speed_diff and both concentration diffs as top-10 features across ≈2,800 game rows. | Being ~2″ faster or spreading points wider shows a higher predicted win rate. | Dataset skews toward English-language GTs; one meta’s gospel is another meta’s heresy. |
Partial-dependence plots show a clean positive slope: faster or less concentrated lists ↔ higher predicted odds. | Model “likes” combined-arms mobility more than death-star density. | PDPs show average effect; single events can swing wildly. |
Per-event cross-checks keep those variables near the top—so it’s not a one-tournament fluke. | Signal seems robust across data set. | We’re still missing tons of regional data, and player skill isn’t in v1. |
Bottom line: early numbers suggest that speed and point-diversity matter, but the training set is a rounding error compared to the total KoW universe. Treat the model as an extra compass, not the gospel of list design—yet.
What You’ll See Soon
- Pre-Event ML Score column in my usual preview workbooks (think Elo, but trained on real match outcomes).
- Interactive matchup heatmaps—green where you’re favored, red where you probably get tabled.
- Post-Event retrospectives that compare the model’s predictions to reality (because accountability is fun, right?).
Help Me Help You
- TOs: Want to beta-test the report template on your next GT? Ping me.
- Data hoarders: If you’ve got clean result sheets or list dumps rotting on a hard drive, send them my way. More data = smarter trees.
- Theorycrafters: Spot a metric I’m missing? Let’s geek out in the comments.
First live run drops with the next big event preview on Data & Dice. Until then, keep those PDFs tidy and your unit names consistent… my fuzzy-matching script thanks you in advance.