Szkolenie z pełnym zestawem danych po walidacji krzyżowej?


139

Czy po sprawdzeniu krzyżowym zawsze dobrze jest trenować z pełnym zestawem danych ? Innymi słowy, czy można trenować ze wszystkimi próbkami w moim zbiorze danych i nie jest w stanie sprawdzić, czy to dopasowanie pasuje do siebie ?


Kilka podstaw problemu:

Powiedzmy, że mam rodzinę modeli sparametryzowanych przez . Powiedz także, że mam zestaw punktów danych i dokonuję wyboru modelu z k-krotną weryfikacją krzyżową, aby wybrać model, który najlepiej uogólnia dane. NαN

Aby wybrać model, mogę przeprowadzić wyszukiwanie (np. Wyszukiwanie w siatce) na , na przykład, uruchamiając k-krotnie weryfikację krzyżową dla każdego kandydata. W każdym z fałdów w ramach walidacji krzyżowej kończę na wyuczonym modelu . βαα βα

Punktem walidacji krzyżowej jest to, że dla każdej z tych fałd mogę sprawdzić, czy wyuczony model się dopasował, testując go na „niewidzialnych danych”. W zależności od wyników mogłem wybrać model nauczyłem się dla parametrów który uogólnił się najlepiej podczas weryfikacji krzyżowej w wyszukiwaniu siatki.α najlepszyβbestαbest

Powiedzmy teraz, że po wyborze modelu chciałbym wykorzystać wszystkie punkty w moim zestawie danych i mam nadzieję, że nauczę się lepszego modelu. W tym celu mogłem użyć parametrów odpowiadających modelowi, który wybrałem podczas wyboru modelu, a następnie po szkoleniu na pełnym zbiorze danych otrzymałem nowy wyuczony model . Problem polega na tym, że jeśli wykorzystam wszystkie punkty z mojego zbioru danych do treningu, nie mogę sprawdzić, czy ten nowy wyuczony model pasuje do żadnych niewidocznych danych. Jaki jest właściwy sposób na obejście tego problemu?α b e s t β f u l l β f u l lNαbestβfull βfull


2
Prawie dokładny duplikat: stats.stackexchange.com/questions/52274 z wieloma godnymi odpowiedziami. Być może wątki te powinny zostać połączone, ale nie jestem pewien, w jakim kierunku. Obie zaakceptowały bardzo dobre odpowiedzi.
ameba

Odpowiedzi:


111

Sposobem na myślenie o walidacji krzyżowej jest oszacowanie wydajności uzyskanej przy użyciu metody budowy modelu, a nie oszacowanie wydajności modelu.

Jeśli użyjesz walidacji krzyżowej do oszacowania hiperparametrów modelu ( ), a następnie użyjesz tych hiperparametrów, aby dopasować model do całego zestawu danych, to jest w porządku, pod warunkiem, że rozpoznasz, że estymacja krzyżowej walidacji wydajności prawdopodobnie będzie (prawdopodobnie zasadniczo) optymistycznie tendencyjny. Wynika to z faktu, że wybrano część modelu (hiper-parametry) w celu zminimalizowania wydajności krzyżowej weryfikacji, więc jeśli statystyka krzyżowej weryfikacji ma niezerową wariancję (i tak będzie), istnieje możliwość nadmiernego dopasowania kryterium wyboru modelu.α

Jeśli chcesz wybrać hiper-parametry i oszacować wydajność wynikowego modelu, musisz przeprowadzić zagnieżdżoną weryfikację krzyżową, w której do oceny wydajności modelu używana jest zewnętrzna weryfikacja krzyżowa, a przy każdym krotnie krzyżowanie walidacja służy do określenia hiperparametrów osobno w każdym folderze. Budujesz ostateczny model przy użyciu weryfikacji krzyżowej dla całego zestawu, aby wybrać hiperparametry, a następnie budujesz klasyfikator na całym zestawie danych, używając zoptymalizowanych hiperparametrów.

Jest to oczywiście drogie obliczeniowo, ale warto, ponieważ błąd wynikający z niewłaściwego oszacowania wydajności może być duży. Zobacz mój artykuł

GC Cawley i NLC Talbot, Nadmierne dopasowanie w wyborze modelu i późniejsze odchylenie wyboru w ocenie wydajności, Journal of Machine Learning Research, 2010. Research, vol. 11, s. 2079–2107, lipiec 2010 r. ( Www , pdf )

Nadal jednak istnieje możliwość nadmiernego dopasowania w wyborze modelu (zagnieżdżona weryfikacja krzyżowa pozwala tylko na jej przetestowanie). Metodą, którą uznałem za przydatną, jest dodanie terminu regularyzacji do błędu weryfikacji krzyżowej, który karze wartości hiperparametrów, które mogą skutkować zbyt złożonymi modelami, patrz

GC Cawley i NLC Talbot, Zapobieganie nadmiernemu dopasowaniu w wyborze modelu poprzez bayesowską regularyzację hiperparametrów, Journal of Machine Learning Research, tom 8, strony 841-861, kwiecień 2007. ( www , pdf )

Odpowiedzi na twoje pytanie brzmią: (i) tak, powinieneś użyć pełnego zestawu danych do stworzenia ostatecznego modelu, ponieważ im więcej danych użyjesz, tym bardziej prawdopodobne jest, że dobrze się uogólni, ale (ii) upewnij się, że uzyskasz obiektywną ocenę wydajności za pośrednictwem zagnieżdżone sprawdzanie poprawności krzyżowej i potencjalnie rozważyć ukaranie statystyki sprawdzania poprawności krzyżowej, aby dodatkowo uniknąć nadmiernego dopasowania w wyborze modelu.


3
+1: Odpowiada na pytanie: „Jeśli użyjesz walidacji krzyżowej do oszacowania hiperparametrów modelu (αs), a następnie użyjesz tych hiperparametrów, aby dopasować model do całego zestawu danych, to w porządku…”
Neil G

4
@ Soufanom, nie, użycie „początkowych eksperymentów” do dokonania wyborów dotyczących modelu może spowodować nadmierne dopasowanie i prawie na pewno wprowadzi optymistyczne nastawienie do analizy wydajności. Walidacja krzyżowa stosowana do analizy wydajności musi powtarzać KAŻDY krok zastosowany w dopasowaniu modelu niezależnie w każdej zakładce. Eksperymenty w moim artykule pokazują, że modele jądra mogą być bardzo wrażliwe na tego rodzaju stronniczość, dlatego bardzo ważne jest, aby dokonać wyboru modelu i oceny wydajności z wszelkimi możliwymi rygorami.
Dikran Torbacz

3
W przypadku metod jądra, takich jak SVM, często jest możliwe przeprowadzenie weryfikacji krzyżowej z pominięciem jednego, prawie bez kosztów obliczeniowych (patrz artykuły wymienione w mojej odpowiedzi). Korzystam z tego „wirtualnego” pomijanego sprawdzania poprawności krzyżowej do dostrajania hiper-parametrów, zagnieżdżonego w k-krotnej weryfikacji krzyżowej do oceny wydajności. Koszt jest wtedy całkiem rozsądny. Moim zdaniem niedopuszczalne jest stosowanie jakiejkolwiek procedury, w której ocena wydajności jest w jakikolwiek sposób stronnicza przez dostrajanie hiper-parametrów. Warto uzyskać koszt obliczeniowy, aby uzyskać wiarygodne oszacowanie.
Dikran Torbacz

2
@DikranMarsupial. Nie do końca rozumiem trzeci akapit w twojej odpowiedzi. Jeśli wykonam zagnieżdżoną weryfikację krzyżową, otrzymam inny zestaw hiperparametrów dla każdej fałdy zewnętrznego CV (tj. Otrzymam jeden zestaw hiperparametrów z uruchomienia wewnętrznego CV na siatce parametrów). Jak wybrać najlepszy zestaw hiperparametrów?
Amelio Vazquez-Reina

1
walidacja krzyżowa jest zasadniczo sposobem na oszacowanie wydajności metody dopasowania modelu, a nie samej metody. Tak więc po przeprowadzeniu zagnieżdżonej weryfikacji krzyżowej w celu uzyskania oszacowania wydajności, po prostu odbuduj ostateczny model przy użyciu całego zestawu danych, korzystając z procedury, którą zweryfikowałeś krzyżowo (która obejmuje wybór hiperparametrów).
Dikran Marsupial

23

Aby dodać do odpowiedzi @ mark999, caretpakiet Maxa Kuhna (szkolenie klasyfikacyjne i regresyjne) jest najbardziej wszechstronnym źródłem w R do wyboru modelu na podstawie weryfikacji krzyżowej bootstrap lub N-fold CV, a także innych schematów.

Nie należy lekceważyć wielkości rmspakietu, ale caretpozwala dopasować prawie każdą metodę uczenia się dostępną w R, podczas gdy validatedziała tylko z rmsmetodami (tak myślę).

caretPakiet jest pojedyncza infrastruktura wstępne dane procesowe, dopasowanie i oceniać każdą popularny model, stąd jest on prosty w obsłudze dla wszystkich metod i zapewnia graficzny ocenę wielu środków Wydajność (coś, obok nadmierne dopasowanie problemu może mieć wpływ na wybór modelu znacznie jako dobrze) ponad siatką i zmienne znaczenie.

Zobacz winiety pakietu, aby rozpocząć (jest bardzo prosty w użyciu)
Wstępne przetwarzanie danych
Wybór zmiennych za pomocą daszka
Budowanie modelu z daszkiem
Zmienne znaczenie

Możesz także przejrzeć stronę internetową firmy Caret, aby uzyskać więcej informacji na temat pakietu i konkretnych przykładów implementacji:
Oficjalna strona firmy Caret


Dzięki. Czy wiesz, czy po wybraniu modelu (który jest wykonywany przez wywołanie train) istnieje sposób, aby trenować z pełnym zestawem danych?
Amelio Vazquez-Reina

Nie jestem pewien, czy to dobry pomysł lub dlaczego chcesz, ale możesz po prostu dopasować ostateczny model zwrócony pociągiem do pełnego zestawu danych.
Momo

16

Uważam, że Frank Harrell zaleciłby walidację bootstrap zamiast walidacji krzyżowej. Sprawdzanie poprawności bootstrap pozwoliłoby na sprawdzenie modelu dopasowanego do pełnego zestawu danych i jest bardziej stabilne niż sprawdzanie krzyżowe. Możesz to zrobić w R, używając pakietu validateHarrella rms.

Więcej informacji można znaleźć w książce „Strategie modelowania regresji” Harrella i / lub „Wprowadzenie do paska startowego” Efrona i Tibshirani.


9
Pominięcie kolejnego mitu o „złym CV” stanowi problem terminologiczny - „krzyżowa weryfikacja” Harrella oznacza „krotnie CV”, a „walidacja bootstrap” oznacza ponowne próbkowanie CV. Oczywiście zgadzam się, że ten drugi smak jest bardziej stabilny i ogólnie ładniejszy, ale jest to także rodzaj krzyżowej walidacji.

1
mark999 lub @mbq, czy mógłbyś zastanowić się nad tym, w jaki sposób bootstrap umożliwiłby sprawdzenie modelu dopasowanego do pełnego zestawu danych?
Amelio Vazquez-Reina

1
@ user27915816 Cóż, w zasadzie nie ma mowy; idea weryfikacji krzyżowej polega na tym, że testujesz, czy dana metoda szkolenia niezawodnie tworzy dobre modele na zestawach bardzo podobnych do zestawu końcowego, a jeśli tak, uogólnij tę obserwację na pełny zestaw, przyjmując ciche założenia, że ​​nic dziwnego się nie wydarzy a zastosowana metoda CV nie jest stronnicza. Jest to oczywiście prawie zawsze wystarczająco dobre, ale nigdy nie możesz być pewien, że model zbudowany na wszystkich posiadanych danych nie jest przeładowany.

14

Myślę, że masz tutaj wiele różnych pytań:

Problem polega na tym, że jeśli wykorzystam wszystkie punkty z mojego zbioru danych do treningu, nie mogę sprawdzić, czy ten nowy wyuczony model βfull jest zbyt duży!

Chodzi o to, że można użyć (jednego) kroku sprawdzania poprawności tylko do jednego: do optymalizacji parametrów, (x) lub do oszacowania wydajności uogólnienia.

Tak więc, jeśli wykonujesz optymalizację parametrów poprzez krzyżową weryfikację (lub jakikolwiek inny sposób określania parametrów na podstawie danych), potrzebujesz próbek testowych, które są niezależne od tych próbek szkoleniowych i optymalizacyjnych. Dikran nazywa to zagnieżdżoną weryfikacją krzyżową, inną nazwą jest podwójna weryfikacja krzyżowa. Lub oczywiście niezależny zestaw testowy.

Oto pytanie do tego postu: Czy warto trenować z pełnym zestawem danych po walidacji krzyżowej krotności? Czy może lepiej jest trzymać się jednego z modeli wyuczonych w jednym z podziałów krzyżowej weryfikacji dla αbest?

Korzystanie z jednego z modeli weryfikacji krzyżowej jest zwykle gorsze niż trening na pełnym zestawie (przynajmniej jeśli wydajność twojej krzywej uczenia się = f ​​(próbki) ciągle rośnie. W praktyce jest tak: gdyby nie była, prawdopodobnie ustawiłbyś poza niezależnym zestawem testowym).

Jeśli zaobserwujesz dużą zmienność między modelami weryfikacji krzyżowej (o tych samych parametrach), wówczas twoje modele są niestabilne. W takim przypadku agregacja modeli może pomóc i faktycznie być lepsza niż użycie jednego modelu wyuczonego na całych danych.

Aktualizacja: Ta agregacja jest ideą tworzenia worków w przypadku ponownego próbkowania bez wymiany (walidacja krzyżowa) zamiast ponownego próbkowania z wymianą (walidacja bootstrap / out-of-bootstrap).

Oto artykuł, w którym zastosowaliśmy tę technikę:
Beleites, C. & Salzer, R .: Ocena i poprawa stabilności modeli chemometrycznych w sytuacjach o małej wielkości próbki, Anal Bioanal Chem, 390, 1261-1271 (2008).
DOI: 10.1007 / s00216-007-1818-6

Być może, co najważniejsze, jak mogę trenować ze wszystkimi punktami w moim zbiorze danych i nadal walczyć z nadmiernym wyposażeniem?

Będąc bardzo konserwatywnym ze stopniami swobody dozwolonymi dla „najlepszego” modelu, tj. Biorąc pod uwagę (losową) niepewność wyników optymalizacji krzyżowej walidacji. Jeśli df są rzeczywiście odpowiednie dla modeli krzyżowej walidacji, są duże szanse, że nie są one zbyt duże dla większego zestawu treningowego. Problem polega na tym, że optymalizacja parametrów to tak naprawdę wielokrotne testowanie. Musisz chronić się przed przypadkowo dobrze wyglądającymi zestawami parametrów.


...If you observe a large variation between the cross validation models (with the same parameters), then your models are unstable. In that case, aggregating the models can help...Czy możesz to trochę wyjaśnić? np. jeśli korzystam z regresji logistycznej w konfiguracji z 10-k walidacją krzyżową i otrzymuję 10 zestawów współczynników, czy zaleca się agregowanie oszacowań współczynników w celu uzyskania ostatecznego modelu? Jeśli tak, to jak to zrobić, biorąc po prostu środki?
Zhubarb

@cbeleites można rozwinąć If the d.f. are actually appropriate for the cross validation models. W moim rozumieniu argumentujesz, że zestawy pociągów / walidacji nie są bardzo duże w porównaniu z kompletnym zestawem danych, czy mam rację?
jpcgandre

1
1k

1
Co ważniejsze: iterowane modele zastępcze walidacji krzyżowej mają ten sam zestaw hiperparametrów. Oznacza to, że są one równoważne we wszystkim, co uważasz za ważne, ale arbitralny wybór przypadków szkolenia i testów. Wybór „dobrego” modelu powinien zatem przede wszystkim wybrać dobrą kombinację zestawu testów / szkolenia - co jest zasadniczo tym, czego zwykle nie chcemy: chcemy wyboru, który dobrze się uogólnia, a więc nie tylko działa w sprzyjających przypadkach. Z tego punktu widzenia wybór modelu zastępczego z „normalnej” walidacji krzyżowej nie ma dla mnie żadnego sensu.
cbeleites

1
11k

6

To, co robisz, nie jest krzyżową walidacją, a raczej pewnego rodzaju stochastyczną optymalizacją.

Ideą CV jest symulacja wydajności na niewidzialnych danych poprzez wykonanie kilku rund budowania modelu na podzbiorze obiektów i testowanie na pozostałych. Nieco uśrednione wyniki wszystkich rund są przybliżeniem wydajności modelu wytrenowanego na całym zestawie .

W przypadku wyboru modelu należy wykonać pełne CV dla każdego zestawu parametrów, a tym samym uzyskać przybliżone wyniki dla pełnego zestawu dla każdej konfiguracji, więc najwyraźniej rzecz, którą chciałeś mieć.

Należy jednak pamiętać, że wcale nie jest zagwarantowane, że model z najlepszą przybliżoną dokładnością będzie w rzeczywistości najlepszy - możesz dokonać krzyżowej weryfikacji całej procedury wyboru modelu, aby zobaczyć, że istnieje pewien zakres w przestrzeni parametrów, dla którego różnice w dokładności modelu nie są znaczące.


2
β

@AmV Jeśli tak, ok - jak napisałem, CV już testuje pełny scenariusz, nie możesz powiedzieć więcej bez nowych danych. Ponownie, możesz co najwyżej zrobić zagnieżdżone CV, aby sprawdzić, czy sam wybór modelu nie powoduje nadmiernego dopasowania (jeśli wybór daje bardzo dobrą poprawę lub dane są głośne, ryzyko tego jest dość duże).
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.