Dlaczego oszacowanie CV błędu testu nie docenia rzeczywistego błędu testu?

10

Rozumiem, że krotność k-krotności oszacowania błędu testu zwykle nie docenia faktycznego błędu testu. Jestem zdezorientowany, dlaczego tak jest. Rozumiem, dlaczego błąd szkolenia jest zwykle niższy niż błąd testu - ponieważ trenujesz model na tych samych danych, na których szacujesz błąd! Ale nie dotyczy to weryfikacji krzyżowej - fałd, na którym mierzysz błąd, jest specjalnie pomijany podczas procesu szkolenia.

Ponadto, czy słuszne jest stwierdzenie, że oszacowanie krzyżowe błędu testu jest tendencyjne w dół?

Rachel Kogan
źródło
1
Gdzie to widzisz? Czy możesz podać jakieś referencje?
horaceT,
1
(+1) Widziałem to samo stwierdzenie i uważam, że jest poprawne, ale też nie rozumiem logiki
KevinKim

Odpowiedzi:

9

Na przykład: zgłaszanie tylko błędu CV modelu jest problematyczne w przypadku, gdy pierwotnie masz wiele modeli (każdy ma określony błąd CV i wariancję błędu), następnie użyj tego błędu, aby wybrać model najlepiej dopasowany do Twojej aplikacji. Jest to problematyczne, ponieważ z każdym modelem wciąż masz pewną szansę, że masz szczęście / pecha (i uzyskujesz lepsze / gorsze wyniki) - i wybierając model, prawdopodobnie wybierasz ten, w którym miałeś więcej szczęścia. Dlatego zgłaszanie tego błędu jako ostatecznego oszacowania błędu jest zbyt optymistyczne.

Jeśli chcesz zagłębić się w szczegóły: ta odpowiedź prowadzi do łatwych do odczytania artykułów na temat tego problemu: Niewłaściwe stosowanie weryfikacji krzyżowej (raportowanie wydajności dla najlepszej wartości hiperparametru)

Jak wskazuje @cbeleites: jest to problematyczne w przypadku, gdy ktoś wykorzystuje uzyskany błąd k-krotności CV np. A) wybrał najlepszy model spośród wielu modeli spośród np. Różnych hiperparametrów, co jest częścią procesu szkolenia, i b) następnie zgłasza ten sam błąd co błąd testu zamiast używania oddzielnego zestawu testowego z opóźnieniem. Jeśli zamiast tego chciałeś poprosić o czysty błąd CV - bez użycia go do wyboru dowolnego modelu - odpowiedź @cbeleites jest bardziej prawdopodobna, czego szukasz.

przedawkowanie
źródło
Ponownie, tutaj problemem jest zgłaszanie błędu szkolenia (szkolenie jak w: ta ocena jest wykorzystywana w procesie uzyskiwania jednego ostatecznego modelu) oszacowania błędu generalizacji - niezależnie od tego, czy błąd ten został obliczony poprzez walidację krzyżową, wstrzymanie się, czy cokolwiek innego inna metoda szacowania błędów.
cbeleites niezadowoleni z SX
1
@cbeleites Znowu, prawda - zwykle zakładam, że wyniki CV zostaną w jakiś sposób wykorzystane do wyboru modelu (co dla niektórych jest powodem używania CV w pierwszej kolejności) - dlatego zwróć na to uwagę. Zaktualizowałem odpowiednio swoją odpowiedź.
geekoverdose
9

k

Prawidłowo wykonane z grubsza oznacza, że ​​podział na zestawy testowe i szkoleniowe w ramach walidacji krzyżowej faktycznie prowadzi do przypadków testowych, które są naprawdę niezależne od modelu.

Istnieje jednak szereg pułapek, które zagrażają tej niezależności . W zależności od tego, jak poważnie zagrożone są dane testowe i od tego, jak bardzo model jest przeładowany, ten brak niezależności oznacza, że ​​błąd weryfikacji krzyżowej staje się w rzeczywistości błędem szkoleniowym. To znaczy, w sumie, możesz skończyć z poważnym nastawieniem optymistycznym (nie doceniając faktycznego błędu uogólnienia).
IMHO ważne jest, aby zrozumieć, że większość tych pułapek nie jest unikalna dla krzyżowej walidacji, ale jest lepiej scharakteryzowana jako zły podział na pociąg i zestaw testowy : mogą (i robią) to samo z innymi schematami walidacji, takimi jak wstrzymywanie się lub niezależność zestawy testowe, które w rzeczywistości nie są tak niezależne, jak się wydaje.

Oto przykłady najczęstszych błędów w podziale, które widzę:

  • Odpowiedź @ geekoverdose podaje przykład rażącego użycia oszacowania błędu szkolenia wewnętrznego (!) jako błędu testu.
    Mówiąc bardziej ogólnie, każdy rodzaj oszacowania błędu wykorzystywany do optymalizacji modelu opartego na danych jest błędem szkoleniowym, ponieważ nadal trwa szkolenie przy użyciu tego oszacowania błędu.
  • Zmylające zmienne nie są brane pod uwagę przy dzieleniu.
    Jeden wiersz w matrycy danych niekoniecznie stanowi niezależny przypadek, np
    • Traktowanie powtarzanych pomiarów tego samego przypadku / pacjenta / pacjenta jako „niezależnych”
    • ogólnie pomijanie / ignorowanie silnego grupowania danych
    • brak świadomości ciągłego dryfu w procesie generowania danych (przyszłe nieznane przypadki vs. tylko nieznane przypadki), ...

cbeleites niezadowoleni z SX
źródło
0

Po pierwsze, wyjaśnię terminy użyte w pytaniu, tak jak rozumiem. Zwykle zaczynamy od jednego zestawu danych szkoleniowych, używamy k-krotnej weryfikacji krzyżowej do testowania różnych modeli (lub zestawów hiperparametrów) i wybieramy najlepszy model z najniższym błędem CV. Tak więc „oszacowanie błędu testu krzyżowego” oznacza użycie najniższego błędu CV jako błędu testu, a nie tylko błędu CV modelu losowego (co jest przypadkiem omawianym przez cbeleites, ale nie jest to normalne.) „Rzeczywistym błędem testu” jest błąd, który otrzymujemy, stosując najlepszy model CV do nieskończonego zestawu danych testowych, zakładając, że możemy go uzyskać. Błąd CV zależy od konkretnego zestawu danych, jaki mamy, a rzeczywisty błąd testu zależy od wybranego najlepszego modelu CV, który jest również zależny od zestawu danych szkoleniowych. Różnica między błędem CV a błędem testu zależy więc od różnych zestawów danych szkoleniowych. Wtedy pojawia się pytanie, jeśli powtarzamy powyższy proces wiele razy z różnymi zestawami danych szkoleniowych i uśredniamy odpowiednio dwa błędy, dlaczego średni błąd CV jest niższy niż średni błąd testu, tj. Błąd CV jest tendencyjny w dół? Ale przedtem, czy to się zawsze zdarza?

Zwykle nie jest możliwe uzyskanie wielu zestawów danych szkoleniowych i zestawu danych testowych zawierających nieskończone rzędy. Ale można to zrobić przy użyciu danych wygenerowanych przez symulację. W „rozdziale 7 Oceny modelu i selekcji” książki „Elementy statystycznego uczenia się” Trevora Hastiego i in. , obejmuje taki eksperyment symulacyjny.

Wniosek jest taki, że używając CV lub bootstrap „… oszacowanie błędu testu dla określonego zestawu treningowego nie jest ogólnie łatwe, biorąc pod uwagę tylko dane z tego samego zestawu treningowego”. Określenie „niełatwe” oznacza, że ​​błąd CV może być niedoszacowany lub zawyżać rzeczywisty błąd testu w zależności od różnych zestawów danych treningowych, tj. Wariancja spowodowana różnymi zestawami danych treningowych jest dość duża. Co z uprzedzeniami? Testowany kNN i model liniowy są prawie nie stronnicze: błąd CV przecenia prawdziwy błąd testu o 0-4%, ale niektóre modele, takie jak drzewa, walidacja krzyżowa i pasek rozruchowy mogą nie docenić prawdziwego błędu o 10%, ponieważ na wyszukiwanie najlepszego drzewa duży wpływ ma zestaw sprawdzania poprawności ".

Podsumowując, dla określonego zestawu danych szkoleniowych błąd CV może być wyższy lub niższy niż prawdziwy błąd testu. Zasadniczo średni błąd CV może wynosić od nieco wyższego do znacznie niższego niż średni rzeczywisty błąd testu, w zależności od metod modelowania.

Powodem niedoszacowania, jak wspomniano powyżej, jest to, że wybór hiperparametrów dla najlepszego modelu jest ostatecznie zależny od konkretnego zestawu danych treningowych, jaki otrzymujemy. Trochę szczegółów, niech najlepsze hiperparametry będą M1 w tym konkretnym zestawie danych szkoleniowych. Ale M1 może nie być najlepszym hiperparametrem w innym zbiorze danych szkoleniowych, co oznacza, że ​​minimalny błąd CV jest mniejszy niż błąd CV z M1. Tak więc oczekiwane błędy CV, które otrzymujemy w procesie szkolenia, są prawdopodobnie mniejsze niż oczekiwany błąd CV M1. Jedyny przypadek, w którym minimalny błąd CV z określonego zestawu danych szkoleniowych nie jest stronniczy, występuje wtedy, gdy najlepszy model jest zawsze najlepszy niezależnie od zbiorów danych szkoleniowych. Z drugiej strony błąd CV może również nieco przecenić prawdziwy błąd testu, jak dyskutowali cbeleites. Wynika to z tego, że k-krotny błąd CV jest uzyskiwany przez użycie nieco mniej danych treningowych do trenowania modelu (dla 10-krotnego CV, użyj danych 90%), jest on tendencyjny w górę w stosunku do prawdziwego błędu, ale niewiele. Istnieją więc dwie tendencje w różnych kierunkach. W przypadku metody modelowania tendencja do nadmiernego nakładania się, stosowanie mniejszej krotności CV, np. 5-krotna w porównaniu do 10-krotnej, może skutkować mniejszym odchyleniem.

Podsumowując, w praktyce nie pomaga to zbytnio: zazwyczaj otrzymujemy tylko jeden „konkretny” zestaw danych. jeśli będziemy podawać 15% do 30% jako dane testowe i wybierzemy najlepszy model według CV jako resztę jako dane treningowe, istnieje prawdopodobieństwo, że błąd CV będzie inny niż błąd testowy, ponieważ oba różnią się od oczekiwanego błędu testowego. Możemy być podejrzliwi, jeśli błąd CV jest znacznie niższy niż błąd testu, ale nie będziemy wiedzieć, który z nich jest bliższy prawdziwemu błędowi testu. Najlepszą praktyką może być przedstawienie obu wskaźników.

Ben2018
źródło