Ile razy powinniśmy powtarzać K-fold CV?

18

Natknąłem się na ten wątek, patrząc na różnice między ładowaniem początkowym a weryfikacją krzyżową - przy okazji, świetna odpowiedź i referencje. Zastanawiam się teraz, czy gdybym powtórzył 10-krotne CV, aby obliczyć dokładność klasyfikatora, ile razy n powinienem to powtórzyć?

Czy n zależy od liczby fałd? Na wielkości próbki? Czy jest na to jakaś reguła?

(W moim przypadku mam próbki tak duże, jak 5000, a jeśli wybiorę coś większego niż n = 20, mój komputer wykonuje zbyt długo obliczenia).

Neodym
źródło

Odpowiedzi:

10

Czynnikiem mającym wpływ na to, jak stabilny jest twój model - a ściślej: przewidywania zastępczych parametrów.

Jeśli modele są całkowicie stabilne, wszystkie modele zastępcze dadzą taką samą prognozę dla tego samego przypadku testowego. W takim przypadku iteracje / powtórzenia nie są potrzebne i nie przynoszą żadnych ulepszeń.

Ponieważ możesz zmierzyć stabilność prognoz, oto co bym zrobił:

  • Ustaw całą procedurę w sposób, który zapisuje wyniki każdego powtórzenia / iteracji weryfikacji krzyżowej, np. Na dysku twardym
  • Zacznij od dużej liczby iteracji
  • Po kilku powtórzeniach pobierz wstępne wyniki i spójrz na stabilność / zmienność wyników dla każdego przebiegu.
  • Następnie zdecyduj, ile dalszych iteracji chcesz zawęzić wyniki.

  • Oczywiście możesz zdecydować się na uruchomienie, powiedzmy, 5 iteracji, a następnie zdecydować o ostatecznej liczbie iteracji, które chcesz wykonać.

(Uwaga dodatkowa: zwykle używam> około 1000 modeli zastępczych, więc typowa liczba powtórzeń / iteracji wynosiłaby około 100–125).

cbeleites obsługuje Monikę
źródło
13

Zadaj statystykowi dowolne pytanie, a ich odpowiedź będzie jakąś formą „to zależy”.

To zależy . Oprócz rodzaju modelu (dobre punkty cbeleites!), Liczby punktów treningowych i liczby predyktorów? Jeśli model jest przeznaczony do klasyfikacji, duża nierównowaga klasy spowodowałaby, że zwiększyłbym liczbę powtórzeń. Ponadto, jeśli ponownie próbkuję procedurę wyboru funkcji, skłoniłbym się do większej liczby próbek.

W przypadku każdej metody ponownego próbkowania zastosowanej w tym kontekście należy pamiętać, że (w przeciwieństwie do klasycznego ładowania początkowego) wystarczy tylko tyle iteracji, aby uzyskać „wystarczająco dokładną” ocenę średniej rozkładu. To jest subiektywne, ale jakakolwiek odpowiedź będzie.

Trzymając się klasyfikacji z dwiema klasami na sekundę, załóżmy, że oczekujesz / masz nadzieję, że dokładność modelu wyniesie około 0,80. Ponieważ proces ponownego próbkowania polega na próbkowaniu oszacowania dokładności (powiedzmy p), standardowym błędem byłoby sqrt[p*(1-p)]/sqrt(B)gdzie Bjest liczba próbek . Ponieważ B = 10standardowy błąd dokładności wynosi około 0,13, a wraz z B = 100nim około 0,04. Możesz użyć tej formuły jako przybliżonego przewodnika dla tego konkretnego przypadku.

Weź również pod uwagę, że w tym przykładzie wariancja dokładności jest zmaksymalizowana, im bardziej zbliżasz się do 0,50, więc dokładny model powinien wymagać mniejszej liczby powtórzeń, ponieważ standardowy błąd powinien być mniejszy niż modele słabo uczące się.

HTH,

Max

topepo
źródło
2
Byłbym bardzo ostrożny w stosowaniu jakiegokolwiek standardowego obliczania błędów w tym kontekście, ponieważ istnieją tutaj 2 źródła wariancji (niestabilność modelu + skończony zestaw przypadków testowych) i myślę, że walidacja ponownego próbkowania nie obejdzie testu skończonego ustaw wariancję: rozważ krzyżową weryfikację. W każdym przebiegu wszystkie przypadki testowe są testowane dokładnie raz. Zatem różnica między seriami iterowanego CV musi wynikać z niestabilności. Nie zaobserwujesz (ani nie zmniejszysz!) Wariancji wynikającej ze skończonego testu ustawionego w ten sposób, ale oczywiście wynik nadal podlega temu.
cbeleites wspiera Monikę