10 · Praktyka · 4 min czytania · Interaktywne · aktualizacja
Czemu ufać bardziej — lokalnej walidacji czy rankingowi publicznemu na Kaggle?
W skrócie
Ranking publiczny liczy się na małej części testu i jest zaszumiony, a lokalna CV korzysta z większej próby. Ostateczny model wybieraj według CV, nie rankingu.
Co to jest
W konkursach predykcyjnych wynik zgłoszenia jest liczony na dwóch rozłącznych częściach zbioru testowego. Ranking publiczny (public leaderboard) widać od razu, ale obejmuje zwykle tylko część testu. Ranking prywatny jest ujawniany po zakończeniu i to on decyduje o miejscach. Lokalna walidacja krzyżowa (CV) to twoja własna ocena na danych uczących.
Dylemat „CV czy ranking?” pojawia się, gdy te dwa źródła się nie zgadzają. Doświadczona odpowiedź brzmi: ufaj tej ocenie, która opiera się na większej liczbie obserwacji i na którą nie patrzyłeś setki razy. Prawie zawsze jest to dobrze zbudowana lokalna CV. Gwałtowne spadki pozycji po ujawnieniu rankingu prywatnego (tzw. shake-up) to zwykle kara za zaufanie rankingowi publicznemu.
Mechanizm — dlaczego tak działa
Każdy wynik na skończonej próbie jest pomiarem z błędem. Dla dokładności p na n obserwacjach błąd standardowy wynosi √(p(1−p)/n). Przy 209 obserwacjach i p ≈ 0,8 to około 2,8 punktu procentowego, a jedna dobrze lub źle sklasyfikowana osoba to 0,48 punktu. Różnice między sensownymi modelami są często mniejsze niż ten szum.
Problem nie polega jednak na samym szumie, tylko na selekcji. Gdy wysyłasz 40 wariantów i wybierasz ten z najwyższym wynikiem publicznym, wybierasz zarówno dobry model, jak i szczęśliwy los — wariant, którego błędy przypadkiem trafiły w łatwe przypadki z części publicznej. Na części prywatnej ten fart się nie powtarza, więc wynik spada. To klątwa zwycięzcy: maksimum z wielu zaszumionych pomiarów jest systematycznie zawyżone.
Lokalna CV też jest zaszumiona i też można się do niej przeuczyć, ale ma dwie przewagi. Zwykle obejmuje więcej obserwacji (cały zbiór uczący, każda obserwacja raz w walidacji), a wynik na foldach daje oszacowanie własnej niepewności. Do tego nie zużywa limitu zgłoszeń, więc można porównywać warianty parami na tych samych foldach.
Wyjątek: gdy CV i ranking systematycznie się rozjeżdżają dla wszystkich modeli, to sygnał, że walidacja nie naśladuje testu — inny okres, inne grupy, inny rozkład. Wtedy trzeba naprawić walidację, a nie zacząć ślepo ufać rankingowi.
Na przykładzie
Symulacja na Titanicu z ustalonym ziarnem: 473 pasażerów do uczenia, 418 „testowych”, test podzielony po połowie na publiczny i prywatny (po 209 osób). Sprawdziliśmy 44 warianty modeli (lasy losowe, gradient boosting, regresja logistyczna z różnymi hiperparametrami). Wyniki publiczne rozciągały się od 76,1% do 82,8% — sam szum i różnice modeli dają prawie 7 punktów rozrzutu.
Zwycięzca rankingu publicznego (82,8%) uzyskał na prywatnym 80,4% — spadek o 2,4 punktu. Zwycięzca lokalnej CV (83,5%) był na publicznym dopiero 28. z 44 (79,4%), czyli tam wyglądał na model do wyrzucenia — a na prywatnym uzyskał te same 80,4%, równe medianie wszystkich wariantów. Korelacja wyniku CV z prywatnym wyniosła 0,63, a wyniku publicznego z prywatnym tylko 0,41. Lekcja: lokalna CV lepiej przewidywała ranking prywatny, a najlepsze miejsce na publicznym nie znaczyło prawie nic.
Dane: Titanic
W praktyce
- Policz błąd standardowy rankingu publicznego: √(p(1−p)/n) dla dokładności; różnice mniejsze niż ~1 SE ignoruj.
- Trzymaj tabelę CV vs ranking dla wszystkich zgłoszeń i licz ich korelację (
df.cv.corr(df.public)); niska korelacja przy dużej skali zmian = podejrzana walidacja. - Stabilizuj CV:
RepeatedStratifiedKFoldlub kilka ziaren podziału, te same foldy dla wszystkich modeli. - Jako ostateczne zgłoszenia wybierz najlepsze według CV, ewentualnie jedno „bezpieczne” i jedno „odważne”.
- Typowy błąd: dopasowywanie progu lub wag zespołu na podstawie wyników publicznych.
- Typowy błąd: walidacja losowa, gdy test pochodzi z innego okresu lub innych grup.
Najczęstsze pytania
- Co robić, gdy CV rośnie, a ranking publiczny spada?
- Najpierw sprawdź, czy zmiana jest większa niż szum obu ocen. Jeśli tak, a rozbieżność powtarza się przy wielu zmianach, walidacja prawdopodobnie nie odzwierciedla testu. Jeśli to pojedynczy przypadek w granicach szumu, zwykle lepiej zaufać CV.
- Czy w ogóle warto patrzeć na ranking publiczny?
- Tak, jako na dodatkowy, niezależny punkt danych: wyłapuje błędy formatu, wycieki w walidacji i duże różnice rozkładów. Problemem jest optymalizacja pod niego, nie patrzenie.
- Dlaczego najlepsi na publicznym rankingu tak często spadają?
- Bo ranking publiczny jest maksimum z tysięcy zaszumionych pomiarów — także między uczestnikami. Ktoś musi mieć szczęście na części publicznej, a szczęście nie przenosi się na prywatną.
Źródła
- Blum A., Hardt M. „The Ladder: A Reliable Leaderboard for Machine Learning Competitions”, ICML 2015.
- Dwork C. i in. „The reusable holdout: Preserving validity in adaptive data analysis”, Science 349(6248), 2015.
- Cawley G. C., Talbot N. L. C. „On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation”, Journal of Machine Learning Research 11, 2010.
- Roelofs R. i in. „A Meta-Analysis of Overfitting in Machine Learning”, NeurIPS 2019.