Czym różni się weryfikacja krzyżowa od szpiegowania danych?

13

Właśnie skończyłem „Wprowadzenie do uczenia statystycznego” . Zastanawiałem się, czy zastosowanie weryfikacji krzyżowej w celu znalezienia najlepszych parametrów dostrajania różnych technik uczenia maszynowego różni się od szpiegowania danych?

Wielokrotnie sprawdzamy, która wartość parametru strojenia daje najlepszy wynik predykcyjny w zestawie testowym. Co się stanie, jeśli parametr strojenia, do którego doszliśmy, przypadkowo pasuje do tego konkretnego zestawu testowego i nie będzie działał dobrze na niektórych przyszłych zestawach testowych?

Proszę wybaczyć moje nowatorskie rozumienie uczenia maszynowego i jestem chętny do edukacji.

EDYCJA: Zobacz odpowiedź @AdamO na definicję „szpiegowania danych”. Użyłem tego terminu bardzo niedokładnie w swoim pytaniu.

Heisenberg
źródło
Tak się cieszę, że to ... mam jutro TC z niektórymi badaczami, którzy coś opublikowali ... niestety cierpi z powodu tego problemu. Świetne pytanie!
pallevillesen

Odpowiedzi:

12

Zastanawiałem się, czy zastosowanie weryfikacji krzyżowej w celu znalezienia najlepszych parametrów dostrajania różnych technik uczenia maszynowego różni się od szpiegowania danych?

Twoje obawy są słuszne, a na ten temat jest mnóstwo literatury, np

Problem polega na tym, że dostrajanie hiperparametrów z weryfikacją krzyżową jest procesem optymalizacji opartym na danych i nadal będzie miał tendencję do nadmiernego dopasowywania się do zestawu danych (mniej niż dostrajanie przez błąd ponownego podstawienia, ale nadal). Próba użycia wyników weryfikacji krzyżowej dostrajania jako „niezależnej” miary wydajności jest w pewnym sensie jak zjedzenie tortu (= strojenie) i utrzymanie (= zmierzenie wydajności modelu końcowego).

Nie oznacza to, że nie należy używać weryfikacji krzyżowej do strojenia hiperparametrów. Oznacza to, że można go używać tylko do jednego celu. Zoptymalizuj lub zmierz wydajność modelu do celów sprawdzania poprawności.

Rozwiązaniem jest to, że musisz wykonać niezależną weryfikację w celu pomiaru jakości modelu uzyskanego za pomocą dostrojonych hiperparametrów. Nazywa się to zagnieżdżeniem lub podwójnym sprawdzaniem poprawności. Znajdziesz tutaj wiele pytań i odpowiedzi na te tematy

Pod względem koncepcyjnym lubię powiedzieć, że trening obejmuje wszelkiego rodzaju fantazyjne kroki, aby dopasować nie tylko „zwykłe” parametry modelu, ale także by dopasować (autostrojenie) hiperparametrów. Oparta na danych optymalizacja λ jest wyraźnie częścią szkolenia modelowego.

Zasadniczo można również powiedzieć, że szkolenie modelowe jest wszystkim, co należy zrobić, zanim będzie dostępna gotowa do użycia końcowa funkcja czarnej skrzynki, która jest w stanie wygenerować prognozy dla nowych przypadków.


PS: Uważam, że terminologia testowania kontra walidacji jest bardzo myląca, ponieważ w mojej dziedzinie „walidacja” oznacza udowodnienie, że ostateczny model jest odpowiedni do celu, a zatem to, co inni nazywają testowaniem, a nie walidacją. Wolę nazywać wewnętrzny zestaw testowy „zestawem testowym dostrajania” i zewnętrznym „zestawem testowym do ostatecznej weryfikacji” lub podobnym.


Aktualizacja:

Więc jeśli mój model (tj. W tym przypadku mój parametr strojenia) nie przejdzie zewnętrznej weryfikacji, co powinienem zrobić?

Zazwyczaj nie dzieje się tak po prostu: istnieją typowe sytuacje, które mogą spowodować taką awarię. I wszystkie takie sytuacje, o których jestem świadomy, to sytuacje zbyt trudne. Należy pamiętać, że chociaż regularyzacja pomaga zmniejszyć niezbędną liczbę przypadków szkoleniowych, optymalizacja oparta na danych wymaga dużych ilości danych.

Moje rekomendacje:

  • Zazwyczaj (powinieneś) mieć już surowe oczekiwania, np. Jaka wydajność powinna być osiągalna, jaką wydajność uważasz za podejrzanie ładną. Lub podaj specyfikację, jaką wydajność musisz osiągnąć i wydajność bazową. Na podstawie tego i liczby dostępnych przypadków treningowych (dla schematu podziału, na który zdecydowałeś się), obliczyć oczekiwaną niepewność dla testów wewnętrznych (tuningowych). Jeśli ta niepewność wskazuje, że nie byłoby możliwe uzyskanie znaczących porównań, nie rób optymalizacji opartej na danych.

  • Powinieneś sprawdzić, jak stabilne są zarówno uzyskane prognozy dla wybranego λ, jak i optymalne λ znalezione w procedurze automatycznego dostrajania. Jeśli λ nie jest wystarczająco stabilny w odniesieniu do różnych podziałów danych, optymalizacja nie działa.

  • Jeśli okaże się, że albo nie będziesz w stanie przeprowadzić optymalizacji opartej na danych, albo że ona w końcu nie działała, możesz wybrać λ na podstawie swojej wiedzy eksperckiej, np. Na podstawie doświadczenia z podobnymi danymi. Lub wiedząc, że jeśli dowiesz się, że optymalizacja nie powiodła się, będziesz potrzebować silniejszej regularyzacji: nadmierne dopasowanie, które prowadzi do awarii, działa w kierunku zbyt skomplikowanych modeli.

cbeleites niezadowoleni z SX
źródło
1
Zgadzam się, terminologia pociąg / test / walidacja nie jest bardzo intuicyjna
M. Berk,
3

k

λλ

„Szpiegowanie danych” lub, jak mógłbym to nazwać, „eksploracyjna analiza danych” nie dotyczy wcześniej zadanego pytania. Wymieniasz pewną liczbę możliwych, prawdopodobnie interesujących wyników i oceniasz je indywidualnie. Możesz wykonać dowolną liczbę analiz eksploracyjnych i zwykle nie martwisz się o wielokrotne testowanie. Każdą analizę eksploracyjną można oceniać indywidualnie, stosując walidację krzyżową, ale z natury nie uwzględnia ona wielokrotnych testów, jeśli masz więcej niż jedną analizę eksploracyjną. Hipotezy w tym otoczeniu mogą być dość szerokie i dalekosiężne, „jakie czynniki są związane z rakiem prostaty?” (z których mierzono picie kawy, zużycie wazektomii itp. itd.) Istotne wyniki są postrzegane jako „generowanie hipotez” i nie dostarczają dowodów potwierdzających.

k

AdamO
źródło
λλ
1
@Anh: dostrojenie λ przez krzyżową weryfikację samo w sobie nie jest złe. Ale robiąc to, „wykorzystałeś” tę krzyżową walidację do strojenia λ i potrzebujesz innej walidacji, która jest niezależna od modelowania, włączając proces strojenia λ. Niewykonanie tej zewnętrznej weryfikacji jest ZŁE. Jeśli ten konkretny λ nie działa „ponownie” (np. Przy innym podziale danych), optymalizacja nie działała. W takiej sytuacji zazwyczaj widać dużą różnicę między zewnętrznymi wynikami walidacji a zaobserwowanym „najlepszym” działaniem podczas strojenia.
cbeleites niezadowoleni z SX
@cbeleites Więc jeśli mój model (tj. w tym przypadku mój parametr strojenia) nie przejdzie zewnętrznej weryfikacji, co powinienem zrobić? Nie mogę wrócić i znaleźć innego parametru dostrajania, ponieważ w gruncie rzeczy zmieniłoby to zewnętrzną walidację w zestaw testowy dostrajania. Co więc robić?
Heisenberg,
λ
λk
1

W rzeczywistości podczas CV próbujesz znaleźć najlepsze parametry w zestawie walidacyjnym , który różni się od zestawu testowego. Dzielisz całe swoje dane na trzy zestawy: zestaw treningowy, zestaw walidacyjny i zestaw testowy. Po prawidłowym sprawdzeniu poprawności krzyżowej nigdy nie patrzysz na koniec testu do końca, więc nie ma w ogóle szpiegowania. Przeprowadzanie weryfikacji krzyżowej na zestawie testowym jest poważnym (choć częstym) błędem metodologicznym.

Jerorx
źródło
Jeśli zestaw sprawdzania poprawności i zestaw testowy są różne, ma to dla mnie sens. Jednak w książce, którą przeczytałem (Hastie i wsp. Nie mniej), twierdzą oni, że stosowanie testu wstrzymania jest kosztowne (nie używamy dużej ilości danych do trenowania), dlatego zalecają k-krotną weryfikację krzyżową, w którym nie sądzę, aby istniał osobny zestaw testowy.
Heisenberg
1
@Anh: oba podziały można wykonać przez ponowne próbkowanie (np. Wielokrotne sprawdzanie poprawności krzyżowej) zamiast odkładania tylko jednego małego zestawu danych.
cbeleites niezadowoleni z SX
@Anh: W k-krotnej walidacji krzyżowej dzielisz k razy oryginalny zestaw treningowy na mniejszy zestaw treningowy i zestaw walidacyjny. Oryginalny zestaw testowy nie jest zaangażowany i używany tylko na końcu.
Jerorx,
0

Jeśli spojrzysz na przykład na stronie 225 „Wprowadzenie do uczenia statystycznego” z przykładem Lasso, zobaczysz, że faktycznie przeprowadzają one zagnieżdżoną weryfikację krzyżową. Tj. Wybór modelu odbywa się cv.glmnetna trainzestawie, który jest dzielony przez cv.glmnetpakiet na pary testowe. Sprawdzanie poprawności modelu odbywa się na testzestawie sprawdzania poprawności („ ”), więc jest to niezależne sprawdzanie poprawności.

Dima Lituiev
źródło