Czy potrzebujemy zestawu testowego, gdy korzystamy z krzyżowej weryfikacji k-fold?

21

Czytałem o walidacji k-fold i chcę się upewnić, że rozumiem, jak to działa.

Wiem, że w przypadku metody wstrzymania dane są podzielone na trzy zestawy, a zestaw testowy jest używany tylko na samym końcu do oceny wydajności modelu, podczas gdy zestaw sprawdzania poprawności służy do dostrajania hiperparametrów itp.

W metodzie k-fold nadal trzymamy zestaw testowy na samym końcu i używamy tylko pozostałych danych do treningu i dostrajania hiperparametrów, tzn. Dzielimy pozostałe dane na kfold, a następnie używamy średniej dokładności po treningu z każdym foldem (lub jakimkolwiek wskaźnikiem wydajności, który zdecydujemy się dostroić nasze hiperparametry)? Czy też w ogóle nie używamy osobnego zestawu testów i po prostu dzielimy cały zestaw danych na k fałdy (jeśli tak jest, zakładam, że bierzemy pod uwagę średnią dokładność k fałd jako naszą ostateczną dokładność)?

b_pcakes
źródło
3
To zależy od tego, co chcesz zrobić. Jeśli chcesz uogólnionego oszacowania wydajności, to tak, model powinien wykonać testy danych, których nigdy wcześniej nie widział. Ale to nie znaczy, że musi to być pojedyncza iteracja wstrzymania, możesz użyć ponownego próbkowania, aby osiągnąć ten sam cel.
Firebug
2
... co oznacza, że ​​ilekroć użyjesz wyników „sprawdzania poprawności” do optymalizacji hiperparametrów / dostrajania modelu, potrzebujesz innego etapu sprawdzania poprawności, który jest niezależny od tego dostrajania. Na obu etapach możesz użyć np. Albo krzyżowej walidacji, albo wstrzymać się (albo poza paskiem startowym, albo ...). CV + CV nazywa się zagnieżdżonym CV, trzymaj + trzymaj prowadzi do 3 zestawów, o których wspomniałeś
cbeleites obsługuje Monikę

Odpowiedzi:

9

W metodzie K-Fold nadal trzymamy zestaw testowy do samego końca i używamy tylko pozostałych danych do treningu i dostrajania hiperparametrów (tj. Dzielimy pozostałe dane na k fałdy, a następnie używamy średniej dokładności po trenujesz z każdym foldem (lub jakimkolwiek wskaźnikiem wydajności, który wybieramy), aby dostroić nasze hiperparametry)?

Tak. Z reguły zestawu testowego nigdy nie należy używać do zmiany modelu (np. Jego hiperparametrów).

Jednak walidację krzyżową można czasem zastosować do celów innych niż dostrajanie hiperparametrów, np. Określenie, w jakim stopniu podział pociąg / test wpływa na wyniki.

Franck Dernoncourt
źródło
6
+1, ale możesz wspomnieć o zagnieżdżonej weryfikacji krzyżowej jako alternatywie dla zestawu weryfikacji krzyżowej + testu.
ameba mówi Przywróć Monikę
1
„może być czasem wykorzystywany do celów innych niż dostrajanie hiperparametrów”. Na przykład można użyć weryfikacji krzyżowej do celów sprawdzania poprawności (= testowanie nieznanych przypadków w celu zmierzenia błędu generalizacji).
cbeleites wspiera Monikę
3

Ogólnie tak. Zasadniczo mówimy o kompromis wariancji uprzedzeń. Jeśli użyjesz danych do zbudowania modelu (dane dotyczące szkolenia i walidacji) i wykonasz iterację po różnych hiperparametrach i spróbujesz zmaksymalizować uśrednioną metrykę wydajności, model może nie być tak dobry, jak wskazano.

Jednak szczególnie w małych zestawach danych dodatkowy podział może prowadzić do jeszcze mniejszego zestawu treningów i skutkować złym modelem.

coomish
źródło
2
To nie jest prawdziwa odpowiedź na pytanie.
Michael R. Chernick
Czy możesz to rozwinąć, aby dodać coś do zaakceptowanej odpowiedzi i dość szczegółowych komentarzy?
mdewey
1

W idealnym przypadku walidacja (do wyboru modelu) i test końcowy nie powinny być mieszane. Jeśli jednak wartość k jest wysoka lub jest pomijana, użycie wyniku testu do wyboru modelu jest mniej szkodliwe. W tym scenariuszu, jeśli piszesz artykuł akademicki, nie rób tego (chyba że próbujesz wyjaśnić) - co oznacza, że ​​zawsze masz osobny zestaw testów. Jeśli budujesz praktyczny projekt, możesz to zrobić.

ymeng
źródło