Ceiling (each list against the mean of the other four): 90.4%
| Model | In-sample vs consensus (tuned) | In-sample, most flexible | In-sample vs lists | Held out vs consensus (± SE) | Held out vs lists (± SE) | Held out, pooled across folds (consensus / lists) | Scrambled vs consensus (SD) | Scrambled vs lists (SD) |
|---|---|---|---|---|---|---|---|---|
| (a) the ledger as it is (step 6) | 75.3% | 75.3% | 75.4% | 74.5% ± 0.6 | 75.0% ± 0.6 | 72.2% / 72.4% | 51.1% (4.3) | 51.4% (4.5) |
| (a1) the ledger's form, its seven weights re-fitted | 75.3% | 75.9% | 75.4% | 71.8% ± 1.1 | 71.9% ± 1.2 | 69.7% / 69.6% | 50.2% (4.5) | 50.5% (4.7) |
| (b) linear on every variable (ridge or lasso) | 96.9% | 99.6% | 92.5% | 70.4% ± 1.1 | 69.5% ± 0.9 | 69.3% / 68.5% | 45.2% (7.2) | 45.7% (7.2) |
| (b2) linear on a short core list (25 variables), ridge | 74.4% | 81.4% | 74.0% | 67.4% ± 0.9 | 65.7% ± 0.8 | 64.6% / 63.3% | 49.4% (7.5) | 49.7% (8.1) |
| (c) linear plus every pairwise interaction (kernel, ridge) | 95.0% | 97.6% | 91.7% | 72.4% ± 0.9 | 71.4% ± 0.8 | 72.1% / 71.2% | 45.6% (7.6) | 45.2% (8.2) |
| (d) boosted trees, monotone where the sign is obvious | 93.7% | 100.0% | 91.3% | 69.2% ± 0.9 | 68.4% ± 0.8 | 67.8% / 67.8% | 51.4% (5.3) | 51.5% (4.0) |
| (e) nearest neighbours (similar units) | 100.0% | 100.0% | 93.3% | 66.2% ± 1.7 | 64.9% ± 1.6 | 62.5% / 61.6% | 43.4% (8.8) | 43.0% (8.5) |
Learning curve (trained on m units, scored on the pairs among the rest; ± SE over splits):
- c: 16: 64.8% ± 2.0, 21: 66.8% ± 2.0, 26: 70.5% ± 1.2, 31: 69.7% ± 1.7, 36: 74.9% ± 1.7, 41: 70.0% ± 3.1
- a1: 16: 73.3% ± 1.1, 21: 72.0% ± 1.6, 26: 71.9% ± 1.0, 31: 72.0% ± 1.5, 36: 72.3% ± 2.3, 41: 73.0% ± 2.7
- a: 16: 75.7% ± 0.9, 21: 75.6% ± 0.8, 26: 73.3% ± 1.1, 31: 76.3% ± 1.9, 36: 75.6% ± 1.6, 41: 73.7% ± 2.7
- b2: 16: 58.8% ± 2.3, 21: 62.2% ± 1.8, 26: 63.7% ± 1.5, 31: 62.5% ± 2.6, 36: 66.2% ± 2.4, 41: 66.7% ± 2.9
Per list, held out:
| Model | auspexFull | hivemindFull | secondFull | maelstrom | astrategas |
|---|---|---|---|---|---|
| ceiling | 92.1% | 92.9% | 87.7% | 95.8% | 83.7% |
| a | 80.9% | 80.1% | 78.3% | 70.8% | 65.1% |
| a1 | 78.3% | 76.8% | 75.1% | 67.2% | 62.0% |
| b | 74.7% | 72.2% | 72.7% | 65.5% | 62.6% |
| b2 | 72.1% | 70.7% | 66.4% | 58.7% | 60.7% |
| c | 76.6% | 74.1% | 74.7% | 68.1% | 63.7% |
| d | 74.5% | 73.0% | 73.2% | 62.0% | 59.5% |
| e | 70.2% | 68.1% | 69.7% | 59.3% | 57.4% |
Settings chosen in the folds (most often):
- a: in-sample {}; folds {} ×50
- a1: in-sample {"lam":10}; folds {"lam":10} ×32, {"lam":0} ×3, {"lam":0.003} ×3, {"lam":0.03} ×3, {"lam":1} ×3
- b: in-sample {"kind":"ridge","lam":0.03}; folds {"kind":"ridge","lam":0.003} ×11, {"kind":"ridge","lam":0.3} ×10, {"kind":"ridge","lam":1} ×7, {"kind":"ridge","lam":0.01} ×5, {"kind":"ridge","lam":3} ×5
- b2: in-sample {"kind":"ridge","lam":0.3}; folds {"kind":"ridge","lam":3} ×26, {"kind":"ridge","lam":1} ×11, {"kind":"ridge","lam":0.3} ×7, {"kind":"ridge","lam":0.1} ×4, {"kind":"ridge","lam":0.003} ×1
- c: in-sample {"lam":0.001}; folds {"lam":0.0003} ×22, {"lam":0.001} ×10, {"lam":0.003} ×7, {"lam":0.01} ×6, {"lam":0.3} ×3
- d: in-sample {"depth":1,"colsample":0.3,"trees":200}; folds {"depth":2,"colsample":0.3,"trees":25} ×8, {"depth":1,"colsample":1,"trees":400} ×6, {"depth":3,"colsample":0.3,"trees":25} ×6, {"depth":1,"colsample":0.3,"trees":25} ×4, {"depth":3,"colsample":0.3,"trees":50} ×3
- e: in-sample {"k":3}; folds {"k":2} ×16, {"k":12} ×15, {"k":3} ×11, {"k":8} ×4, {"k":1} ×4
Flexible against the ledger, held out (paired; SE over repeats; bootstrap over units SD and the share of resamples at or below 0):
| Pair | vs consensus | vs lists | bootstrap SD | P(≤ 0) | scrambled SD |
|---|---|---|---|---|---|
| a1 − a | -2.6 ± 0.8 | -3.1 ± 0.9 | 1.7 | 1.00 | 2.1 |
| b − a | -4.0 ± 1.0 | -5.5 ± 0.7 | 4.6 | 0.78 | 9.7 |
| b2 − a | -7.1 ± 1.2 | -9.3 ± 1.2 | 5.5 | 0.89 | 9.2 |
| c − a | -2.0 ± 0.7 | -3.6 ± 0.7 | 4.6 | 0.67 | 9.9 |
| d − a | -5.2 ± 0.8 | -6.6 ± 0.7 | 4.0 | 0.91 | 7.6 |
| e − a | -8.3 ± 1.7 | -10.1 ± 1.7 | 4.7 | 0.94 | 11.4 |
| b − a1 | -1.4 ± 0.8 | -2.3 ± 0.8 | 3.9 | 0.66 | 9.0 |
| b2 − a1 | -4.5 ± 1.4 | -6.2 ± 1.6 | 4.8 | 0.83 | 8.6 |
| c − a1 | 0.6 ± 0.8 | -0.5 ± 1.1 | 3.8 | 0.50 | 9.5 |
| d − a1 | -2.6 ± 1.1 | -3.5 ± 1.4 | 3.2 | 0.80 | 6.8 |
| e − a1 | -5.7 ± 1.5 | -7.0 ± 1.5 | 4.1 | 0.91 | 11.2 |
Permutation importance, held out, model c (drop in pairwise vs consensus, points):
| Variable | Drop | SE |
|---|---|---|
| kw_is_burrowers | 0.57 | 0.12 |
| fx_arrival | 0.55 | 0.14 |
| inv | 0.54 | 0.21 |
| kw_precision | 0.44 | 0.16 |
| kw_is_fly | 0.41 | 0.20 |
| kw_is_titanic | 0.40 | 0.08 |
| kw_heavy | 0.38 | 0.13 |
| kw_is_transport | 0.37 | 0.12 |
| rulesWeaponLike | 0.31 | 0.10 |
| kw_is_battleline | 0.31 | 0.16 |
| ix_invxT | 0.27 | 0.16 |
| bestWS | 0.21 | 0.13 |
| has_leader | 0.20 | 0.08 |
| value | 0.20 | 0.19 |
| fx_attMods | 0.20 | 0.05 |
The T-636 additions alone (top 12):
| Variable | Family | Drop | SE |
|---|---|---|---|
| rulesWeaponLike | rules | 0.31 | 0.10 |
| bestWS | loadout | 0.21 | 0.13 |
| lfx_rules | rules | 0.18 | 0.13 |
| scouts_inches | rules | 0.18 | 0.06 |
| anti_infantry | weaponkw | 0.17 | 0.14 |
| transportCapacity | rules | 0.17 | 0.12 |
| dsMultiProfile | loadout | 0.16 | 0.07 |
| modelProfiles | size | 0.14 | 0.09 |
| rulesCount | rules | 0.13 | 0.09 |
| kwu_Transport | keywords | 0.13 | 0.15 |
| maxAP_any | loadout | 0.11 | 0.13 |
| ppmDiscount | size | 0.10 | 0.15 |
| Family | Drop | SE |
|---|---|---|
| ledger | 3.15 | 0.59 |
| flags | 3.07 | 0.72 |
| all T-636 additions | 1.86 | 0.57 |
| weapons | 1.09 | 0.39 |
| rules | 1.02 | 0.31 |
| killclass | 0.95 | 0.31 |
| keywords | 0.36 | 0.22 |
| datasheet | 0.21 | 0.23 |
| weaponkw | 0.03 | 0.23 |
| size | -0.15 | 0.22 |
| interaction | -0.37 | 0.23 |
| loadout | -0.76 | 0.36 |
Permutation importance, held out, model d (drop in pairwise vs consensus, points):
| Variable | Drop | SE |
|---|---|---|
| c_score | 3.60 | 0.54 |
| value | 3.19 | 0.50 |
| valueCheap | 1.24 | 0.33 |
| k6_light_vehicle | 1.23 | 0.32 |
| lands | 0.76 | 0.26 |
| k6_monster | 0.48 | 0.17 |
| inv | 0.39 | 0.16 |
| abilitiesOwn | 0.34 | 0.11 |
| c_hold | 0.31 | 0.13 |
| kw_precision | 0.19 | 0.15 |
| OC | 0.17 | 0.11 |
| ppmDiscount | 0.16 | 0.16 |
| ix_arrivexMelee | 0.13 | 0.26 |
| carriedDistinct | 0.11 | 0.07 |
| rangedVeh100 | 0.10 | 0.10 |
The T-636 additions alone (top 12):
| Variable | Family | Drop | SE |
|---|---|---|---|
| abilitiesOwn | rules | 0.34 | 0.11 |
| ppmDiscount | size | 0.16 | 0.16 |
| carriedDistinct | loadout | 0.11 | 0.07 |
| Ld_best | size | 0.08 | 0.05 |
| ptsAtMin | size | 0.06 | 0.05 |
| ptsAtMax | size | 0.03 | 0.12 |
| fx_partly | rules | 0.03 | 0.08 |
| sizeMin | size | 0.03 | 0.05 |
| modelProfiles | size | 0.03 | 0.03 |
| ppmAtMin | size | 0.03 | 0.03 |
| carriedTotal | loadout | 0.01 | 0.03 |
| dsRanged | loadout | 0.01 | 0.01 |
| Family | Drop | SE |
|---|---|---|
| ledger | 12.19 | 1.20 |
| killclass | 2.34 | 0.43 |
| size | 0.81 | 0.24 |
| interaction | 0.38 | 0.35 |
| datasheet | 0.17 | 0.27 |
| weaponkw | 0.00 | 0.00 |
| keywords | -0.03 | 0.03 |
| weapons | -0.22 | 0.47 |
| flags | -0.29 | 0.23 |
| rules | -0.49 | 0.29 |
| loadout | -0.62 | 0.21 |
| all T-636 additions | -0.66 | 0.39 |
Permutation importance, held out, model a1 (drop in pairwise vs consensus, points):
| Variable | Drop | SE |
|---|---|---|
| c_kill | 19.87 | 0.99 |
| c_presence | 1.53 | 0.40 |
| c_hold | 0.61 | 0.21 |
| c_soak | 0.59 | 0.23 |
| c_score | 0.46 | 0.21 |
| c_spawn | 0.09 | 0.07 |
| M | 0.00 | 0.00 |
| T | 0.00 | 0.00 |
| Sv | 0.00 | 0.00 |
| inv | 0.00 | 0.00 |
| W | 0.00 | 0.00 |
| Ld | 0.00 | 0.00 |
| OC | 0.00 | 0.00 |
| models | 0.00 | 0.00 |
| pts | 0.00 | 0.00 |
The T-636 additions alone (top 12):
| Variable | Family | Drop | SE |
|---|---|---|---|
| kwu_Vehicle | keywords | 0.00 | 0.00 |
| kwu_Walker | keywords | 0.00 | 0.00 |
| kwu_Mounted | keywords | 0.00 | 0.00 |
| kwu_Aircraft | keywords | 0.00 | 0.00 |
| kwu_Transport | keywords | 0.00 | 0.00 |
| kwu_Dedicated_Transport | keywords | 0.00 | 0.00 |
| kwu_Leader | keywords | 0.00 | 0.00 |
| kwu_Grenades | keywords | 0.00 | 0.00 |
| kwu_Smoke | keywords | 0.00 | 0.00 |
| kwu_Frame | keywords | 0.00 | 0.00 |
| kwu_Tacticus | keywords | 0.00 | 0.00 |
| kwu_Daemon | keywords | 0.00 | 0.00 |
| Family | Drop | SE |
|---|---|---|
| ledger | 21.21 | 1.13 |
| datasheet | 0.00 | 0.00 |
| weapons | 0.00 | 0.00 |
| flags | 0.00 | 0.00 |
| killclass | 0.00 | 0.00 |
| interaction | 0.00 | 0.00 |
| keywords | 0.00 | 0.00 |
| size | 0.00 | 0.00 |
| loadout | 0.00 | 0.00 |
| weaponkw | 0.00 | 0.00 |
| rules | 0.00 | 0.00 |
| all T-636 additions | 0.00 | 0.00 |
Partial dependence, model c (fit on all 52; consensus scale; biggest step):
- kw_is_burrowers: range 0.18 letters; biggest step +0.18 between 0 and 1; curve 0→2.97, 1→3.15
- fx_arrival: range 0.11 letters; biggest step +0.11 between 0 and 1; curve 0→2.97, 1→3.08
- inv: range 0.10 letters; biggest step -0.03 between 4 and 5; curve 4→3.06, 5→3.03, 6→3.00, 7→2.96
- kw_precision: range 0.16 letters; biggest step +0.16 between 0 and 1; curve 0→2.96, 1→3.13
- kw_is_fly: range 0.14 letters; biggest step -0.14 between 0 and 1; curve 0→3.02, 1→2.88
- kw_is_titanic: range 0.13 letters; biggest step -0.13 between 0 and 1; curve 0→3.00, 1→2.87
- kw_heavy: range 0.21 letters; biggest step +0.21 between 0 and 1; curve 0→2.96, 1→3.17
- kw_is_transport: range 0.16 letters; biggest step -0.16 between 0 and 1; curve 0→3.00, 1→2.84
- rulesWeaponLike: range 0.14 letters; biggest step +0.14 between 0 and 1; curve 0→2.98, 1→3.11
- kw_is_battleline: range 0.20 letters; biggest step +0.20 between 0 and 1; curve 0→2.97, 1→3.17
- ix_invxT: range 0.10 letters; biggest step +0.05 between 0 and 5; curve 0→2.96, 5→3.01, 8→3.02, 15→3.04, 18→3.04, 24→3.05, 27→3.06, 28→3.06, 30→3.06, 33→3.06
- bestWS: range 0.14 letters; biggest step +0.06 between 0 and 0.333; curve 0→2.88, 0.333→2.94, 0.5→2.96, 0.667→2.99, 0.833→3.02
Partial dependence, model d (fit on all 52; consensus scale; biggest step):
- c_score: range 0.95 letters; biggest step +0.43 between 0 and 9.455; curve 0→2.27, 9.455→2.70, 11.587→3.04, 12.606→3.04, 13.904→3.22, 17.176→3.22, 22.034→3.22, 26.182→3.22, 33.279→3.22, 85.881→3.22, 209.932→3.22
- value: range 0.51 letters; biggest step +0.22 between 3076.76 and 3422.068; curve 10.796→2.82, 479.387→2.82, 644.868→2.82, 731.117→2.89, 960.284→2.89, 1019.608→3.05, 1135.23→3.05, 1481.212→3.05, 2133.618→3.05, 3076.76→3.11, 3422.068→3.33
- valueCheap: range 0.53 letters; biggest step +0.31 between 3017.884 and 3422.068; curve 10.796→2.85, 441.848→2.85, 617.075→2.85, 676.313→2.85, 876.142→2.92, 1006.336→2.92, 1135.23→3.07, 1481.212→3.07, 2133.618→3.07, 3017.884→3.07, 3422.068→3.38
- k6_light_vehicle: range 0.43 letters; biggest step +0.31 between 9.287 and 12.061; curve 0→2.81, 0.96→2.81, 2.045→2.81, 4.396→2.81, 7.602→2.81, 9.287→2.81, 12.061→3.12, 14.028→3.24, 16.005→3.24, 17.922→3.24, 22.099→3.24
- lands: range 0.28 letters; biggest step +0.16 between 0.924 and 0.988; curve 0→2.82, 0.66→2.82, 0.742→2.82, 0.786→2.93, 0.924→2.93, 0.988→3.10, 1→3.10
- k6_monster: range 0.16 letters; biggest step +0.16 between 0.187 and 0.534; curve 0→2.87, 0.039→2.87, 0.187→2.87, 0.534→3.03, 1.829→3.03, 2.475→3.03, 3.56→3.03, 4.62→3.03, 8.905→3.03, 12.058→3.03, 30.133→3.03
- inv: range 0.22 letters; biggest step -0.22 between 4 and 5; curve 4→3.16, 5→2.95, 6→2.95, 7→2.95
- abilitiesOwn: range 0.16 letters; biggest step +0.16 between 2 and 3; curve 1→2.97, 2→2.97, 3→3.13, 4→3.13
- c_hold: range 0.06 letters; biggest step +0.06 between 0 and 9.496; curve 0→2.94, 9.496→2.99, 16.777→2.99, 22.551→2.99, 28.013→2.99, 32.485→2.99, 43.27→2.99, 49.041→2.99, 72.508→2.99, 120.975→2.99, 344.469→2.99
- kw_precision: range 0.26 letters; biggest step +0.26 between 0 and 1; curve 0→2.96, 1→3.21
- OC: range 0.10 letters; biggest step +0.10 between 0 and 1; curve 0→2.90, 1→3.00, 2→3.00, 3→3.00, 4→3.00, 5→3.00, 12→3.00
- ppmDiscount: range 0.66 letters; biggest step -0.41 between 0.969 and 1; curve 0.556→3.57, 0.778→3.57, 0.833→3.57, 0.857→3.57, 0.917→3.34, 0.933→3.34, 0.955→3.31, 0.969→3.31, 1→2.90, 1.056→2.90, 1.063→2.90
The trees' splits (fit on all 52): variable, gain, median threshold, uses:
- value: gain 1022.1, threshold ~3076.877 (685.486 to 3076.877), 8 splits
- valueCheap: gain 882.3, threshold ~3047.439 (685.486 to 3047.439), 9 splits
- c_score: gain 728.9, threshold ~11.353 (6.201 to 13.613), 25 splits
- k6_light_vehicle: gain 311.8, threshold ~11.083 (10.295 to 13.027), 15 splits
- OC: gain 310.3, threshold ~0.5 (0.5 to 0.5), 1 splits
- lands: gain 285.5, threshold ~0.956 (0.764 to 0.956), 9 splits
- c_kill: gain 273.8, threshold ~602.543 (602.543 to 602.543), 1 splits
- ppmDiscount: gain 270.0, threshold ~0.984 (0.887 to 0.984), 17 splits
- ix_MxMelee: gain 180.8, threshold ~6.457 (0.841 to 6.457), 6 splits
- kw_heavy: gain 179.9, threshold ~0.5 (0.5 to 0.5), 12 splits
- ix_arrivexMelee: gain 179.0, threshold ~11.492 (5.25 to 11.492), 8 splits
- OC_max: gain 158.8, threshold ~0.5 (0.5 to 0.5), 1 splits
The trees' interactions (a depth-3 fit on all 52, 100 trees: one split under the other, by the child's gain):
- c_score × value: 728.9
- c_score × k6_cavalry_and_beasts: 171.0
- choicePicks × value: 130.3
- lands × value: 122.4
- k6_monster × value: 112.5
- ix_invxT × k6_light_vehicle: 111.5
- kw_heavy × lands: 86.4
- c_score × ix_invxT: 85.8
- k6_light_vehicle × ppmDiscount: 80.3
- c_score × valueCheap: 75.0
- kw_precision × ppmDiscount: 74.5
- ix_durHeavy100 × value: 63.0
Linear (b) fitted on all 52, largest standardised weights:
- kw_indirect: 0.275
- kw_is_battleline: 0.215
- kw_heavy: 0.209
- kw_is_fly: -0.206
- modelProfiles: -0.205
- kw_precision: 0.186
- k6_light_vehicle: 0.185
- lands: 0.183
- fx_list: -0.177
- arrives: 0.173
- ppmDiscount: -0.171
- fx_arrival: 0.155
- anti_infantry: -0.154
- value: 0.148
- kw_is_burrowers: 0.147
- c_presence: 0.143
- valueCheap: 0.141
- kw_is_transport: -0.138
- kwu_Transport: -0.138
- transportCapacity: -0.138
The ledger's seven weights re-fitted on all 52 (a1):
- kill: step 6 498.17 → 497.97 (×1.00)
- soak: step 6 14.97 → 14.97 (×1.00)
- score: step 6 9.65 → 9.65 (×1.00)
- actions: step 6 1.31 → 1.31 (×1.00)
- hold: step 6 18.89 → 18.89 (×1.00)
- spawn: step 6 15.65 → 15.65 (×1.00)
- presence: step 6 2.52 → 2.52 (×1.00)
Units the best model (c) gets right that the ledger gets wrong (held-out share of the unit's pairs ordered right):
| Unit | Consensus | Consensus rank | Ledger rank | Best model | Ledger | Gain | Top variables (percentile) |
|---|---|---|---|---|---|---|---|
| Harpy | 0.8 | 50.5 | 33 | 100.0% | 65.6% | 34 | kw_is_burrowers 0, fx_arrival 0, inv 25, kw_precision 0, kw_is_fly 76 |
| Toxicrene | 1.333 | 46.5 | 23 | 86.9% | 53.4% | 33 | kw_is_burrowers 0, fx_arrival 0, inv 25, kw_precision 0, kw_is_fly 0 |
| Gargoyles | 3.6 | 19 | 47 | 64.9% | 41.2% | 24 | kw_is_burrowers 0, fx_arrival 0, inv 25, kw_precision 0, kw_is_fly 76 |
| Tyranid Warriors with Ranged Bio-Weapons | 1.8 | 43 | 13 | 62.8% | 44.0% | 19 | kw_is_burrowers 0, fx_arrival 0, inv 25, kw_precision 0, kw_is_fly 0 |
| Tyrant Guard | 2.8 | 32.5 | 49 | 81.5% | 65.4% | 16 | kw_is_burrowers 0, fx_arrival 0, inv 25, kw_precision 0, kw_is_fly 0 |
| Genestealers | 3.8 | 14 | 34 | 68.6% | 55.3% | 13 | kw_is_burrowers 0, fx_arrival 0, inv 20, kw_precision 0, kw_is_fly 0 |
| Neurotyrant | 3.667 | 17 | 39 | 65.0% | 52.3% | 13 | kw_is_burrowers 0, fx_arrival 0, inv 0, kw_precision 0, kw_is_fly 76 |
| Norn Emissary | 4.2 | 11 | 19 | 74.0% | 61.9% | 12 | kw_is_burrowers 0, fx_arrival 0, inv 0, kw_precision 90, kw_is_fly 0 |
| Ripper Swarms | 2 | 40 | 37 | 93.5% | 83.2% | 10 | kw_is_burrowers 0, fx_arrival 0, inv 25, kw_precision 0, kw_is_fly 0 |
| Carnifexes | 2 | 40 | 30 | 81.0% | 71.9% | 9 | kw_is_burrowers 0, fx_arrival 0, inv 25, kw_precision 0, kw_is_fly 0 |
And the reverse (the ledger right, the model wrong):
- Biovores: consensus 5 (rank 1.5), ledger rank 5; model 6.2% against ledger 92.4%
- Tyrannofex: consensus 4.4 (rank 6.5), ledger rank 25; model 36.7% against ledger 68.9%
- Psychophage: consensus 3 (rank 28.5), ledger rank 27; model 63.5% against ledger 87.3%
- Hyperadapted Raveners: consensus 4.4 (rank 6.5), ledger rank 9; model 69.1% against ledger 91.6%
- Winged Tyranid Prime: consensus 2.6 (rank 34.5), ledger rank 31; model 57.6% against ledger 78.1%
- Parasite of Mortrex: consensus 2.2 (rank 36.5), ledger rank 43; model 57.6% against ledger 75.2%
- Old One Eye: consensus 3 (rank 28.5), ledger rank 11; model 53.1% against ledger 67.5%
- Lictor: consensus 4.8 (rank 3), ledger rank 2; model 77.1% against ledger 91.2%
Every flexible model misses the same way (mean held-out prediction minus consensus, letters):
- Biovores: -3.222 (consensus 5; S/S/S/S/S)
- Neurolictor: -1.809 (consensus 5; S/S/S/–/S)
- Tervigon: +1.659 (consensus 2; B/C/C/C/D)
- Toxicrene: +1.634 (consensus 1.333; C/–/–/D/D)
- Tyrannofex: -1.583 (consensus 4.4; S/A/A/A/S)
- Tyranid Warriors with Ranged Bio-Weapons: +1.483 (consensus 1.8; C/C/C/D/C)
- Hierophant: +1.424 (consensus 1.5; D/C/C/D/–)
- Exocrine: -1.348 (consensus 4.4; A/A/A/S/S)
- Lictor: -1.278 (consensus 4.8; S/A/S/S/S)
- Parasite of Mortrex: +1.234 (consensus 2.2; B/B/C/C/D)
- Hormagaunts: -1.173 (consensus 4.2; S/A/B/A/S)
- Deathleaper: +1.162 (consensus 3.4; A/S/A/B/D)