Testowanie statystyczne dla ML

Wnioskowanie, estymacja i podejmowanie decyzji z danych

Zbudowałeś dwa różne klasyfikatory; jeden z nich osiąga 91.0% dokładności, z kolei drugi równe 91.4%. Czy ten drugi jest naprawdę lepszy, czy po prostu dostał od losu bardziej „szczęśliwy” zbiór testowy? Ścisłych i rygorystycznych odpowiedzi na to pytanie potrafi dostarczyć testowanie statystyczne w ML: w klasycznym sensie jest to nic innego, jak testowanie hipotez starannie zaadaptowane do specyfiki porównywania ze sobą modeli uczenia maszynowego.

Bardzo naiwny krok, jakim byłby zwykły test t dla sprawdzania dokładności uśrednionej po wszystkich fałdach, okazuje się fundamentalnie błędny: fałdy walidacji krzyżowej nieustannie bowiem współdzielą ze sobą dane treningowe, przez co skutecznie łamią kluczowe założenie o wzajemnej niezależności wymagane przez test t. To czyni test zbyt pewnym siebie, co sztucznie pompuje ilość fałszywie pozytywnych rezultatów. Poniższe trzy znacznie lepsze narzędzia rozwiązują takie sytuacje w ML w pełni poprawny i uczciwy sposób.

Test McNemara dokonuje porównania dwóch klasyfikatorów na dokładnie tym samym zbiorze testowym, skupiając się wyłącznie na tych przykładach, na których obydwa modele ewidentnie się ze sobą nie zgadzają — stanowi to dokładnie właściwe pytanie do zadania w kontekście testowania w pełni sparowanych predykcji. Bootstrap systematycznie (bardzo wiele razy) pobiera dla nas próbę testową (z opcją zwracania), tak, aby od razu zbudować nam bezpośredni przedział ufności dla uśrednionej dokładności — i to bez wpisywania do tego dedykowanego wzoru. Poprawiony, sparowany test t sam z siebie dostosowuje ostateczną wariancję zjawiska, by móc należycie uwzględnić na starcie ewentualne nakładanie się elementów między sąsiednimi fałdami w procesie CV, co ostatecznie „cofa” wspomnianą wcześniej zbytnią pewność siebie po stronie naiwnej wersji testu t.

Gdzie to występuje w MLTen rodzaj rygoru to coś, co oddziela realne wyniki od czystego szumu na listach rankingowych (leaderboardach). Zanim ogłosisz, że model A pokonuje model B, koniecznie przeprowadź test McNemara (na tym samym zbiorze testowym) lub bootstrap CI na wyliczonej różnicy w dokładności obu modeli. Głównym powodem, dla którego rzetelne wyniki raportuje się powszechnie na przykład jako „91.2% ± 0.4%”…
▶ Testowanie statystyczne dla ML
← Metryki ewaluacjiModele generatywne vs dyskryminatywne →