Kompendium technik walidacji krzyżowej

43

Zastanawiam się, czy ktoś wie o kompendium technik walidacji krzyżowej z dyskusją na temat różnic między nimi i wskazówką, kiedy stosować każdą z nich. Wikipedia ma listę najpopularniejszych technik, ale jestem ciekawy, czy istnieją inne techniki i czy istnieją dla nich taksonomie.

Na przykład po prostu wpadam na bibliotekę, która pozwala mi wybrać jedną z następujących strategii:

  • Wytrzymać
  • Bootstrap
  • K Walidacja krzyżowa
  • Zostaw jeden
  • Stratyfikowana weryfikacja krzyżowa
  • Zrównoważona stratyfikacja krzyżowa
  • Stratified Hold out
  • Stratified Bootstrap

i staram się zrozumieć, co oznacza stratyfikacja i równowaga w bootstrapowaniu, trzymaniu się lub CV.

Możemy również zamienić ten post w wiki społeczności, jeśli ludzie tego chcą, i zebrać tutaj dyskusję na temat technik lub taksonomii.

815423426
źródło
To wspaniałe pytanie byłoby jeszcze bardziej pomocne, gdybyśmy mogli połączyć się z objaśnieniami każdej z metod.
mkt - Przywróć Monikę

Odpowiedzi:

16

Możesz dodać do tej listy:

  • Sprawdzanie poprawności powtórzone
  • Walidacja krzyżowa z pominięciem grupy
  • Out-of-bag (dla losowych lasów i innych workowanych modeli)
  • 632+ bootstrap

Tak naprawdę nie mam zbyt wiele rad, jak korzystać z tych technik i kiedy z nich korzystać. Możesz użyć pakietu karetki w R, aby porównać CV, Boot, Boot632, jedno-wyjście, jedno-wyjście grupowe i cross-walidacja poza torbą.

Zasadniczo używam boostrap, ponieważ jest on mniej intensywny obliczeniowo niż powtarzane CV składane metodą k-krotnie lub CV pomijane. Boot632 jest moim wybranym algorytmem, ponieważ nie wymaga dużo więcej obliczeń niż bootstrap i okazuje się być lepszy niż cross-validation lub podstawowy bootstap w niektórych sytuacjach.

Prawie zawsze używam oszacowań błędów „out-of-bag” dla losowych lasów, zamiast weryfikacji krzyżowej. Błędy „po wyjęciu z torby” są generalnie bezstronne, a losowe lasy zajmują wystarczająco dużo czasu, aby je obliczyć.

Zach
źródło
3
Wszelkie porady dotyczące tego, kiedy użyć każdego z nich?
whuber
16

K-fold cross-validation (CV) losowo dzieli dane na partycje K, a Ty z kolei trzymasz jedną z tych części K jako przypadek testowy i łączysz pozostałe części K-1 jako dane treningowe. Leave One Out (LOO) to specjalny przypadek, w którym bierzesz N danych i wypełniasz N-krotnie CV. W pewnym sensie Hold Out to kolejny specjalny przypadek, w którym wybierasz tylko jeden ze swoich K-foldów jako test i nie obracasz się przez wszystkie K-foldy.

O ile mi wiadomo, 10-krotne CV jest w zasadzie de rigueur, ponieważ skutecznie wykorzystuje twoje dane, a także pomaga uniknąć pechowych wyborów partycji. Funkcja Hold Out nie wykorzystuje wydajnie twoich danych, a LOO nie jest tak solidny (lub coś w tym rodzaju), ale 10-krotne krycie jest w sam raz.

Jeśli wiesz, że twoje dane zawierają więcej niż jedną kategorię, a jedna lub więcej kategorii jest znacznie mniejsza niż reszta, niektóre z twoich losowych partycji K mogą nawet nie zawierać żadnej z małych kategorii, co byłoby złe. Aby upewnić się, że każda partycja jest w miarę reprezentatywna, stosujesz stratyfikację: podziel dane na kategorie, a następnie utwórz losowe partycje, wybierając losowo i proporcjonalnie z każdej kategorii.

Wszystkie te odmiany K-fold CV wybierają z danych bez wymiany. Bootstrap wybiera dane z zamiennikiem, więc ten sam układ odniesienia może być dołączony wiele razy, a niektóre dane mogą w ogóle nie zostać uwzględnione. (Każda „partycja” będzie również miała N elementów, w przeciwieństwie do K-fold, w którym każda partycja będzie miała N / K pozycji.)

(Muszę jednak przyznać, że nie wiem dokładnie, w jaki sposób bootstrap byłby używany w CV. Zasadą testowania i CV jest upewnienie się, że nie testujesz danych, na których trenowałeś, więc otrzymujesz bardziej realistyczne wyobrażenie o tym, jak Twoja technika + współczynniki mogą działać w realnym świecie).

EDYCJA: Zastąpiono „Hold Out nie jest efektywny” na „Hold Out nie efektywnie wykorzystuje twoje dane”, aby pomóc wyjaśnić, zgodnie z komentarzami.

Wayne
źródło
1
Kiedy mówisz, że „Hold Out nie jest skuteczny”, nie jestem pewien, czy podążam. Co rozumiesz przez wydajność tutaj? W przeciwieństwie do zwykłego składania N, Hold Out nie obraca się między zakładkami, więc powinno być szybsze. Czy zamiast tego masz na myśli, że jest gorzej w walce z przeregulowaniem niż zwykłe CV z krotnością N?
Amelio Vazquez-Reina
2
Przez „wydajny” rozumiem, że nie wykorzystuje on twoich danych w sposób wydajny. Piękno K-fold CV polega na tym, że 100% twoich danych jest wykorzystywanych do szkolenia, a 100% twoich danych do testowania, co skutecznie wykorzystuje twoje dane. Kluczem jest oczywiście to, że wszystkie twoje dane nie są wykorzystywane do testowania i szkolenia w tym samym czasie, co dałoby optymistyczne wyniki testów (nadmierne dopasowanie). Dokonując podziału statycznego, Hold Out mówi, że powiedzmy, 1/3 twoich danych nigdy nie zostanie wykorzystana do szkolenia, a 2/3 twoich danych nigdy nie zostanie wykorzystana do testowania, marnując dużo informacji w twoich danych.
Wayne,
@Wayne Czy estymator wstrzymania nie jest asymptotycznie bezstronny? Również proste k-krotnie CV jest bardziej podatne na błąd typu II niż powtarzane k-krotnie CV.
chl
@chl: Uważam, że masz rację w obu przypadkach. Nie korzystałem z powtarzanego CV typu K-fold, ale powinien mieć mniejszą wariancję, co by pomogło.
Wayne,
1

... i przewodnik, kiedy użyć każdego z nich ...

Niestety ten problem jest trudniejszy, niż można się spodziewać. Istnieją co najmniej 2 główne zastosowania walidacji krzyżowej: wybór modelu i ocena wydajności modelu.

Z grubsza mówiąc, jeśli użyjesz wariantu CV, który dzieli dane przy użyciu wysokiego stosunku pociągu do testu, może to być lepsze do oceny. Użycie większego zestawu treningowego będzie dokładniej naśladować wydajność dopasowania modelu w pełnym zbiorze danych.

Ale wysoki wybór pociągu do testu może być gorszy przy wyborze. Wyobraź sobie, że naprawdę istnieje „najlepszy” model, który „powinieneś” wybrać, ale twój zestaw danych jest dość duży. Wtedy zbyt duże modele, które nieco się pokrywają, będą miały prawie taką samą wydajność CV jak model „najlepszy” (ponieważ z powodzeniem oszacujesz ich fałszywe parametry jako nieistotne). Losowość danych i procedura dzielenia CV / często powodują, że wybierasz zbyt dopasowany model zamiast prawdziwie „najlepszego” modelu.

Zobacz Shao (1993), „Linear Model Selection by Cross-Validation” dla starszych teorii asymptotycznych w przypadku regresji liniowej. Yang (2007), „Spójność krzyżowej walidacji dla porównywania procedur regresji” i Yang (2006), „Porównywanie metod uczenia się do klasyfikacji” dają asymptotyczną teorię dla bardziej ogólnych problemów z regresją i klasyfikacją. Trudno jest jednak uzyskać dokładne porady dotyczące próbek skończonych .

Civilstat
źródło