2/2
Архитектура итогового сабмита:
Два независимых стека, финальный бленд:
🔸Part A - физика. 128-сидовый likelihood-weighted particle filter (ANCC-anchored, Z-velocity coupled, numba), поверх — селектор кандидатных путей + robust low-degree полиномиальная проекция. На выходе anchor.
🔸Part B - ML-стек (fleongg). LGBM×3 + CatBoost×2 + Ridge-мета. Ключевая инженерная деталь - два спатиальных импьютера, FormationPlaneKNN и DenseANCCImputer, которые тянут признаки формаций (ANCC/ASTNU/…, есть только в train) с ближайших соседних скважин; на train-объектах вызываются с self_wid, который исключает саму скважину из выдачи соседей. Поверх - physfeats: self-log + neighbor-dip признаки, инъекция весом W_HARD=0.3 в финал ветки.
Поверх обеих веток:
🔸 HMM (forward-backward, self-log emission), вес HMM_W
🔸 kriging по датум-сдвигу b_w (locked-конфиг: TH=2.2166, ANISO=2.0, RNG=500, K=25, anisotropic variogram), вес krige_w; работает только за счёт соседей ближе ~500 ft (при исключении их из lookup сигнал схлопывается)
🔸 gold/contact-override - прямое восстановление TVT из формаций для скважин-дублей train <-> hidden
🔸 seed-branch hedge: когда посмертное распределение 128 PF-сидов бимодально (masса меньшей моды ≥0.25, разделение мод 4–40 ft), сдвигаем предсказание к взвешенной середине веток, капом ±2 ft; срабатывает на ~12% скважин
Финальная формула: pred = w_sp45·[(1−HMM_W)·anchor + HMM_W·hmm] + (1−w_sp45)·fleongg, затем + krige-сдвиг, + gold-override, + seed-hedge.
Валидация:
Итоговые веса финального сабмита были заточены под кросс-валидацию с GroupKFold(folds=5) по скважинам, при этом валидация была настроена для каждой части отдельно, итоговая валидация всей модели делалась на пересечении (по итогу на CV оценивались 370 скважин). Как показали результаты, CV отлично коррелировала с Private (итогова модель имела 9.004 против 9.038 на Private), но корреляция с LB была отрицательная, что и привело к огромному LB шафлу после соревнования.
Главный вывод:
Trust Your CV.
Public LB - маленькая (52 скважины), шумная подвыборка скрытого теста; CV370 - выборка на порядок больше. Ретроспективная проверка на private-скорах топ-89 сабмитов дала корреляцию Pearson +0.90 между CV и private LB - и отрицательную (−0.61) между public LB и private. Несколько раз в процессе мы отказывались от CV-оптимальных конфигов в пользу тех, что лучше смотрелись на public LB - и каждый раз это было ошибкой в противоположную от истины сторону.
Смелая попытка довериться CV до конца, невзирая на посредственный public-скор, принесла +168 позиций и бронзу. При этом ни оверфита, ни случайного выброса не произошло именно благодаря стабильности этой CV: 370 скважин с честными групповыми фолдами - выборка того же порядка, что и сам скрытый тест, поэтому и скачок получился большим, но объяснимым по величине, а не подарком генератора случайных чисел.
#соревнования
Post #812
714
- ❤ 7
- 🔥 6
- 👍 1