Gdy próbujesz dopasować modele do dużego zestawu danych, powszechną wskazówką jest podzielenie danych na trzy części: szkolenie, sprawdzanie poprawności i testowanie zestawu danych.
Wynika to z faktu, że modele zwykle mają trzy „poziomy” parametrów: pierwszy „parametr” to klasa modelu (np. SVM, sieć neuronowa, losowy las), drugi zestaw parametrów to parametry „regularyzacji” lub „hiperparametry” ( np. współczynnik kar lasso, wybór jądra, struktura sieci neuronowej) i trzeci zestaw są zwykle uważane za „parametry” (np. współczynniki dla zmiennych towarzyszących).
Biorąc pod uwagę klasę modelu i wybór hiperparametrów, wybiera się parametry, wybierając parametry, które minimalizują błąd w zestawie treningowym. Biorąc pod uwagę klasę modelu, dostraja się hiperparametry, minimalizując błąd w zestawie sprawdzania poprawności. Jeden wybiera klasę modelu na podstawie wydajności w zestawie testowym.
Ale dlaczego nie więcej partycji? Często można podzielić hiperparametry na dwie grupy i użyć „walidacji 1”, aby dopasować pierwszą i „walidacji 2”, aby dopasować drugą. Lub można nawet traktować rozmiar podzielonych danych treningowych / danych walidacyjnych jako hiperparametr, który należy dostroić.
Czy jest to już powszechna praktyka w niektórych aplikacjach? Czy są jakieś prace teoretyczne dotyczące optymalnego partycjonowania danych?
źródło
To interesujące pytanie, które okazało się pomocne przy odpowiedzi z @Wayne.
Z mojego zrozumienia, dzielenie zestawu danych na różne partycje zależy od celu autora i wymagań modelu w rzeczywistej aplikacji.
Zwykle mamy dwa zestawy danych: szkolenie i testowanie. Trening służy do znalezienia parametrów modeli lub dopasowania modeli. Testowy służy do oceny wydajności modelu w niewidzialnych danych (lub danych rzeczywistych).
Jeśli zrobimy tylko jeden krok w szkoleniu, oczywiste jest, że istnieje proces szkolenia i testowania (lub zatwierdzania).
Jednak w ten sposób może pojawić się problem nadmiernego dopasowania, gdy model jest trenowany z jednym zestawem danych, jednorazowo. Może to prowadzić do niestabilności modelu w rzeczywistym świecie. Jednym ze sposobów rozwiązania tego problemu jest weryfikacja krzyżowa (CV) modelu w zbiorze danych szkoleniowych. Oznacza to, że dzielimy zestaw danych treningowych na różne fałdy, zachowujemy jeden pas, aby przetestować model, który jest trenowany z innymi fałdami. Zwycięzcą jest teraz ten, który daje minimalną stratę (w oparciu o naszą własną funkcję celu) w całym procesie CV. W ten sposób możemy zagwarantować, że zminimalizujemy szansę na zbyt duże dopasowanie się do procesu treningowego i wybierzemy odpowiedniego zwycięzcę. Zestaw testowy jest ponownie używany do oceny zwycięzcy w niewidzialnych danych.
źródło