Dlaczego badacze używają 10-krotnej walidacji krzyżowej zamiast testowania na zestawie walidacyjnym?
On 30 listopada, 2020 by adminPrzeczytałem wiele artykułów naukowych na temat klasyfikacji nastrojów i powiązanych tematów.
Większość z nich używa 10-krotnej weryfikacji krzyżowej do trenowania i testowania klasyfikatorów. Oznacza to, że nie przeprowadza się oddzielnych testów / walidacji. Dlaczego?
Jakie są zalety / wady tego podejścia, szczególnie dla osób prowadzących badania?
Komentarze
- Czy na pewno nie czy przeprowadzono oddzielne testy?
- +1. Zauważyłem to samo. Wielokrotnie dziesięciokrotna weryfikacja krzyżowa to ostateczny raportowany wynik.
Odpowiedź
To nie jest problem, jeśli CV jest zagnieżdżone , tj. wszystkie optymalizacje, wybory funkcji i modele, niezależnie od tego, czy same używają CV, czy nie, są zapakowane w jedno duże CV.
Jak to się ma do posiadania dodatkowego zestawu do walidacji? Podczas gdy zbiór walidacyjny jest zwykle po prostu mniej lub bardziej losowo wybraną częścią całych danych, jest po prostu odpowiednikiem jednej iteracji CV. W tym celu jest to w rzeczywistości gorsza metoda, ponieważ można ją łatwo zniekształcić przez (miejmy nadzieję) wybrany na szczęście / niefortunnie wybrany zestaw walidacyjny.
Jedynym wyjątkiem są szeregi czasowe i inne dane, w przypadku których ma znaczenie zamówienie obiektu; ale tak czy inaczej wymagają specjalnego traktowania.
Odpowiedź
Głównym powodem jest to, że k-krotny estymator walidacji krzyżowej ma niższa wariancja niż estymator pojedynczego zbioru wstrzymanego, co może być bardzo ważne, jeśli ilość dostępnych danych jest ograniczona. Jeśli masz pojedynczy zestaw wstrzymania, w którym 90% danych jest wykorzystywanych do uczenia, a 10% do testowania, zestaw testów jest bardzo mały, więc będzie wiele różnic w oszacowaniu wydajności dla różnych próbek danych, lub dla różnych partycji danych w celu utworzenia zestawów uczących i testowych. K-krotna walidacja zmniejsza tę wariancję poprzez uśrednienie z k różnych partycji, więc oszacowanie wydajności jest mniej wrażliwe na partycjonowanie danych. Możesz pójść jeszcze dalej, powtarzając k-krotną walidację krzyżową, w której walidacja krzyżowa jest wykonywana przy użyciu różnych partycji danych w celu utworzenia k podzbiorów, a następnie biorąc również średnią z tego.
Należy jednak pamiętać, że wszystkie etapy procedury dopasowania modelu (wybór modelu, wybór cech itp.) Muszą być wykonywane niezależnie w każdym kroku procedury walidacji krzyżowej, w przeciwnym razie wynikowe oszacowanie wydajności będzie optymistycznie obciążone.
Odpowiedź
[ZMIENIONO w świetle komentarza]
Myślę, że jest problem, jeśli używasz wyników CV do wyboru wiele modeli.
CV pozwala na wykorzystanie całego zbioru danych do trenowania i testowania jednego modelu / metody, mając jednocześnie rozsądne wyobrażenie o tym, jak dobrze będzie on uogólniał. Ale jeśli porównujesz wiele modeli, mam instynkt, że porównanie modeli zużywa dodatkowy poziom izolacji testu pociągu, który daje CV, więc ostateczny wynik nie będzie rozsądnym oszacowaniem dokładności wybranego modelu.
Sądzę więc, że jeśli tworzysz kilka modeli i wybierasz jeden na podstawie jego CV, jesteś zbyt optymistą co do tego, co znalazłeś. Potrzebny byłby inny zestaw walidacyjny, aby zobaczyć, jak dobrze Zwycięzca uogólnia.
Komentarze
- Dziękuję. Zgadza się. Ale moje pytanie dotyczyło zwłaszcza tego, dlaczego w artykułach badawczych brak ostatecznej walidacji? Czy chodzi o mniej danych, czy też CV działa dobrze, a oddzielna walidacja nie jest ' potrzebna?
- Podejście do dzielenia danych jest wysoce nieefektywne. Dopóki zarówno zbiory uczące, jak i testowe nie będą ogromne, średni kwadratowy błąd oszacowania prawdopodobnej przyszłej wydajności modelu predykcyjnego jest mniejszy w przypadku ładowania początkowego lub dowcipu h 100 powtórzeń 10-krotnej walidacji krzyżowej, zakładając, że procedury ponownego próbkowania miały dostęp do wszystkich etapów modelowania, które obejmowały $ Y $. Użyj podziału danych, gdy musisz również zweryfikować proces pomiarowy, instrument pomiarowy lub inne procedury związane ze znaczeniem danych. Dobrym zastosowaniem podziału danych jest sytuacja, gdy instrumentacja różni się w zależności od kraju.
Odpowiedź
-
Z mojego doświadczenia wynika, że głównym powodem jest zwykle to, że nie masz wystarczającej ilości próbek.
W mojej dziedzinie (klasyfikacja próbek biologicznych / medycznych) czasami zestaw testów jest oddzielny, ale często obejmuje tylko kilka przypadków. że przedziały ufności przypadków są zwykle zbyt szerokie, aby były przydatne. -
Kolejną zaletą powtarzanej / iterowanej walidacji krzyżowej lub walidacji poza bootstrapem jest to, że tworzysz kilka Modele zastępcze. Zakłada się, że są one równe. Jeśli tak nie jest, mody są niestabilne.W rzeczywistości możesz zmierzyć tę niestabilność (w odniesieniu do wymiany kilku przypadków szkoleniowych), porównując same modele zastępcze lub prognozy różnych modeli zastępczych dla tego samego przypadku.
-
Ten artykuł autorstwa Esbensena & Geladi zawiera ciekawe omówienie niektórych ograniczeń weryfikacji krzyżowej.
Możesz uważać większości z nich, ale jedną ważną kwestią, której nie można rozwiązać przez walidację ponownego próbkowania, jest dryf, który jest powiązany z punktem mbq:Jedynym wyjątkiem do tego są szeregi czasowe i inne dane, w których liczy się kolejność obiektów
Dryft oznacza, że np. reakcja instrumentu / prawdziwa kalibracja zmienia się powoli w czasie. Zatem błąd generalizacji dla nieznanych przypadków może nie być taki sam jak dla nieznanych przyszłych przypadków. Jeśli podczas walidacji zauważysz dryf, otrzymasz takie instrukcje, jak „powtarzaj kalibrację codziennie / co tydzień /…”, ale wymaga to systematycznego gromadzenia zestawów testowych później niż dane treningowe.
(Możesz wykonać „specjalne” podziały, które obejmują czas zdobywania konta, jeśli eksperyment jest planowany zgodnie z planem, ale zwykle nie będzie on obejmował tyle czasu, ile chciałbyś przetestować pod kątem wykrywania dryfu)
Odpowiedź
Dlaczego powinniśmy przeprowadzać walidację krzyżową zamiast używać oddzielnego zestawu do walidacji?
Aurélien Géron mówi o tym w swojej książce
Aby uniknąć „marnowania” zbyt dużej ilości danych szkoleniowych w zestawach walidacyjnych, powszechną techniką jest użycie walidacji krzyżowej.
Dlaczego zamiast innych wartości k wolimy używać k = 10 w walidacji krzyżowej?
Aby odpowiedzieć na początku chciałbym podziękować dr Jasonowi Brownlee za jego świetny samouczek na k-krotnej walidacji krzyżowej. Cytuję jedną z jego cytowanych książek.
Kuhn & Johnson mówił o wyborze wartości k w swojej książce .
K ma zazwyczaj do wyboru 5 lub 10, ale nie ma formalnej zasady. Wraz ze wzrostem k różnica wielkości między zbiorem uczącym a podzbiorami ponownego próbkowania maleje. Gdy ta różnica maleje, odchylenie techniki staje się mniejsze (tj. odchylenie jest mniejsze dla k = 10 niż k = 5 ). W tym kontekście odchylenie jest różnicą między szacowanymi i prawdziwymi wartościami wydajności
Następnie można powiedzieć, że dlaczego nie używamy -out cross-validation (LOOCV), ponieważ wartość k jest tam maksymalna, a zatem odchylenie będzie najmniejsze. W tej książce omówili również, dlaczego możemy preferować 10-krotne CV zamiast preferować LOOCV.
Z praktycznego punktu widzenia, większe wartości k to więcej uciążliwe obliczeniowo. W skrajnym przypadku LOOCV jest najbardziej obciążający obliczeniowo, ponieważ wymaga tylu dopasowań modelu, ile punktów danych, a każde dopasowanie modelu wykorzystuje podzbiór, który jest prawie taki sam jak zestaw uczący. Molinaro (2005) stwierdził, że pominięcie jednego wyjścia i k = 10-krotna weryfikacja krzyżowa dały podobne wyniki, wskazując, że k = 10 to więcej atrakcyjne z punktu widzenia wydajności obliczeniowej. Ponadto małe wartości k, powiedzmy 2 lub 3, mają duże odchylenie, ale są bardzo wydajne obliczeniowo.
Przeczytałem wiele artykułów naukowych na temat klasyfikacji nastrojów i powiązanych tematów. Większość z nich używa 10-krotnej weryfikacji krzyżowej do szkolenia i testowania klasyfikatorów. Oznacza to, że nie przeprowadza się osobnego testowania / walidacji. Dlaczego tak jest?
Jeśli nie używamy walidacji krzyżowej (CV) do wybrania jednego z wielu modeli (lub nie używamy CV do dostrojenia hiperparametrów) , nie musimy robić oddzielnego testu. Powodem jest to, że cel zrobienia oddzielnego testu jest realizowany tutaj w CV (przez jeden z k razy w każdej iteracji). Różne wątki SE dużo o tym mówią. Możesz sprawdzić.
Na koniec możesz mnie zapytać, czy coś, co napisałem, nie jest dla Ciebie jasne.
Dodaj komentarz