Download reports/nnlab/PREREGISTRATION.md from Karar-git/hack4dev-building-age-winners: direct link, hf CLI and curl.
- Browser
- Download file 2.96 kB
-
https://huggingface.co/Karar-git/hack4dev-building-age-winners/resolve/main/reports/nnlab/PREREGISTRATION.md
- Command line
-
hf download hf://Karar-git/hack4dev-building-age-winners/reports/nnlab/PREREGISTRATION.md
-
curl -L -o PREREGISTRATION.md https://huggingface.co/Karar-git/hack4dev-building-age-winners/resolve/main/reports/nnlab/PREREGISTRATION.md
Final picks, fixed before confirmation (2026-11-11 01:36)
Written before any score on half B alone was tabulated and before draws 5-11 existed for the ensemble members.
What was used to choose
- Half A of Amsterdam (checkerboard of 2 km blocks,
lab.half_A), draws 0-4,python tools/nnlab/lab.py board _A. - Honest caveat: full-city scores (A + B together) of the single models and of ensembles e1-e3 were printed earlier in the night, so B was not perfectly blind. B on its own was never looked at.
The picks
| name | pipeline | decision |
|---|---|---|
| FINAL-AVG | ens_e4__lp: fixed-rule ensemble (zero-shot XGBoost+DANN with weight 10/(n+10); the rest shared equally by retrained LightGBM, met_protoda_maha, met_cos_maha, tab_dann_rz_ft), then label propagation with the shots clamped |
rule + neighbour smoothing |
| FINAL-PEAK | ens_e2__lapshot: zero-shot XGBoost+DANN (weight 10/(n+10)) + retrained LightGBM, then LaplacianShot-style graph refinement |
rule + neighbour smoothing |
| FINAL-SWITCH | n <= 50: FINAL-AVG; n >= 100: FINAL-PEAK (n is an input of modelCreate, so this is one method) | as above |
Half A, draws 0-4 (the evidence): ens_e4__lp 0.7033 / 0.7109 / 0.7290 / 0.7355 / 0.7392; ens_e2__lapshot 0.6856 / 0.6952 / 0.7172 / 0.7376 / 0.7524.
Why e4 and not e6 / e7 (which add a self-trained LightGBM or LDA): they differ from e4 by under 0.001 on half A, which is noise, and e4 is one stage simpler.
Confirmation to be reported, whatever it shows
- Half B, draws 0-11.
- All pixels, draws 5-11 only (draws never used for choosing).
- The same for the reference: retrained LightGBM with the rule (0.6563 average).
Round 2 pick, fixed before its confirmation (2026-11-11 03:26)
A LightGBM variant from round 2, lgbm_feda (Daume feature augmentation: shared,
Madrid-only and Amsterdam-only copies of the top 120 features; everything else as
the retrained LightGBM), scored well above the others on draws 0-4.
| name | pipeline | decision |
|---|---|---|
| FINAL-2 | ens_e12: zero-shot XGBoost+DANN with weight 10/(n+10) + lgbm_feda with the rest |
rule + neighbour smoothing |
| FINAL-2 without coordinates | the same | rule only |
| single model | lgbm_feda |
rule + smoothing, and rule only |
Evidence used: half A, draws 0-4. ens_e12 rule_smooth 0.7052 / 0.7161 / 0.7410 / 0.7481 / 0.7591 (avg 0.734) against ens_e4 0.7139 avg; lgbm_feda alone 0.7236 avg. Ensembles that keep the metric-learning and neural members next to lgbm_feda (e10, e11) were lower on half A (0.721, 0.724) and are not picked.
Sanity check done before confirmation: training lgbm_feda with the shot labels shuffled collapses macro F1 to 0.32 (n=5) and 0.23 (n=200), so the gain comes from the shot labels.
Confirmation to be reported whatever it shows: all pixels on draws 5-11, on which
lgbm_feda has never been run, and half B on draws 0-11.
lgbm_fedaw100 (feda + shot weight 100) is exploratory only, draws 0-4.