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
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
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 l
źródło
Odpowiedzi:
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.
źródło
Aby dodać do odpowiedzi @ mark999,
caret
pakiet 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
rms
pakietu, alecaret
pozwala dopasować prawie każdą metodę uczenia się dostępną w R, podczas gdyvalidate
działa tylko zrms
metodami (tak myślę).caret
Pakiet 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
źródło
train
) istnieje sposób, aby trenować z pełnym zestawem danych?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
validate
Harrellarms
.Więcej informacji można znaleźć w książce „Strategie modelowania regresji” Harrella i / lub „Wprowadzenie do paska startowego” Efrona i Tibshirani.
źródło
Myślę, że masz tutaj wiele różnych pytań:
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.
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
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.
źródło
...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?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ę?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.
źródło