Mówi się, że uczenie maszynowe od statystyki różni się tym, że w tym pierwszym wydziela się zbiór testowy. Jest to oczywiście dość prześmiewcze uproszczenie, ale pociągnijmy ten temat — a dojdziemy do ciekawego związku między ML i statystyką, o którym być może nie każdy pomyślał.
Zbiór testowy wydzielamy, bo modele, których używamy, bez problemu mogą zapamiętać całe dane treningowe, ale bezrozumnie — przez co nie poradzą sobie na egzaminie, jeśli tylko pojawią się na nim nowe zadania. Mówimy wtedy o nadmiernym dopasowaniu (overfitting).
Chcemy zatem zawczasu sprawdzić nasz model na tych nowych zadaniach, żeby zweryfikować jego wiedzę. Różnymi metodami: walidacja krzyżowa, bootstrap, pojedynczy zbiór testowy (zwykle najgorsze rozwiązanie).
Warto w tym miejscu powiedzieć, że samo zjawisko nadmiernego dopasowania niekoniecznie jest problemem. Model, który tak się dopasował, w dalszym ciągu może być najlepszy. Np. las losowy praktycznie zawsze to robi (przynajmniej używając domyślnych hiperparametrów w języku R), stąd nawet nie ma sensu sprawdzać, jak działa na zbiorze treningowym (choć sprawa jest bardziej skomplikowana i to zależy od tego, co dokładnie rozumiemy przez nadmierne dopasowanie). Potrzebujemy zbioru testowego nie po to, żeby „nie zrobić overfittingu”, ale żeby dać modelowi taką ocenę, na jaką rzeczywiście zasługuje — czyli uzyskać wiarygodne szacunki MSE, AUC itd.
Dobrze, to teraz wróćmy do klasycznej statystyki. Czemu tam nie wpadliśmy na to, żeby wydzielać zbiór testowy? Czyżby nie zależało nam, by nasze modele generalizowały się na nowe dane? Przeciwnie. Natomiast robi się to rzadziej, bo po pierwsze, mamy zasady, które przed tym nadmiernym dopasowaniem chronią. Używamy dość prostych modeli (o niewielkiej liczbie parametrów), robimy korekty na wielokrotne testowanie itp.
Po drugie — i tu uwaga, punkt kulminacyjny — pewnym odpowiednikiem zbioru testowego jest stara dobra p-wartość (jak również błąd standardowy, przedział ufności itp.). To jest właśnie narzędzie, dzięki któremu próbujemy odpowiedzieć na pytanie, czy wyniki z próby generalizują się na inne dane (populację).
(Oczywiście to nie jest to samo, chodzi mi tu o ideę i pewien aspekt problemu).
I zauważmy od razu zalety takiego klasycznego podejścia. Przy liczeniu p-wartości wykorzystujemy całe dane (a nie tylko podzbiór), oraz dodatkowe dane: naszą wiedzę, która konkretyzuje się w przyjętych założeniach (np. rozkład normalny). Stosując bardziej elastyczne metody (uczenie maszynowe), model musi wyczytać wszystko z danych. Koszt tego jest taki, że potrzebujemy dodatkowego zbioru.
Na koniec dodam, że w statystyce również wydziela się zbiory testowe, a przynajmniej powinno. Niestety, nierzadko dzieje się tak, że na jednym zbiorze wykonuje się zarówno eksplorację (korelacja wszystkiego ze wszystkim, wybór zmiennych do modelu itp.), jak i walidację (liczenie p-wartości). Jak widać, kiepscy statystycy robili overfitting, zanim to było modne!
