Jak działa weryfikacja krzyżowa typu „out-one-out”? Jak wybrać ostateczny model spośród różnych modeli?

25

Mam trochę danych i chcę zbudować model (powiedzmy model regresji liniowej) z tych danych. W następnym kroku chcę zastosować weryfikację krzyżową Leave-One-Out (LOOCV) na modelu, aby zobaczyć, jak dobrze sobie radzi.

Jeśli dobrze zrozumiałem LOOCV, buduję nowy model dla każdej z moich próbek (zestaw testowy), używając każdej próbki oprócz tej próbki (zestaw treningowy). Następnie używam modelu do przewidywania zestawu testowego i obliczania błędów .(predictedactual)

W następnym kroku agreguję wszystkie błędy wygenerowane przy użyciu wybranej funkcji, na przykład średni błąd kwadratu. Mogę wykorzystać te wartości do oceny jakości (lub dobrego dopasowania) modelu.

Pytanie: Który model jest modelem, do którego odnoszą się te wartości jakości, więc który model powinienem wybrać, jeśli uznaję wskaźniki wygenerowane z LOOCV za odpowiednie dla mojego przypadku? LOOCV przyjrzał się różnym modelom (gdzie jest wielkością próby); który model powinienem wybrać?nnn

  • Czy to model, który wykorzystuje wszystkie próbki? Ten model nigdy nie został obliczony podczas procesu LOOCV!
  • Czy to model ma najmniejszy błąd?
theomega
źródło
Powiązane: stats.stackexchange.com/questions/11602 .
ameba mówi Przywróć Monikę

Odpowiedzi:

24

Najlepiej jest myśleć o walidacji krzyżowej jako sposobie szacowania wydajności generalizacji modeli generowanych przez określoną procedurę, a nie samego modelu. Weryfikacja krzyżowa z pominięciem jednego z nich jest zasadniczo oszacowaniem wydajności uogólnienia modelu wyuczonego na próbkach danych, co ogólnie jest nieco pesymistycznym oszacowaniem wydajności modelu wyuczonego na próbkach.nn1n

Zamiast wybierać jeden model, należy dopasować model do wszystkich danych i użyć LOO-CV, aby zapewnić nieco konserwatywne oszacowanie wydajności tego modelu.

Zauważ jednak, że LOOCV ma dużą wariancję (wartość, którą otrzymasz, różni się bardzo, jeśli użyjesz innej losowej próbki danych), co często sprawia, że ​​jest to zły wybór estymatora do oceny wydajności, nawet jeśli jest w przybliżeniu bezstronny. Używam go cały czas do wyboru modelu, ale tak naprawdę tylko dlatego, że jest tani (prawie darmowy dla modeli jądra, nad którymi pracuję).

Dikran Torbacz
źródło
Dziękuję za odpowiedź. Nie jest zdanie „użyj LOO-CV, aby podać nieco konserwatywne oszacowanie wydajności tego modelu”. zły jest ogólny przypadek? Model może się pogorszyć, jeśli dodam kolejny punkt, w takim przypadku LOO-CV może być. optymistyczne oszacowanie
theomega
1
Im więcej danych użyjesz do zbudowania modelu, tym ogólnie lepszy będzie model. Podczas gdy dodatkowy punkt może pogorszyć model, jest bardziej prawdopodobne, że model będzie trochę lepszy. Ogólnie rzecz biorąc, loocv ma niewielkie pesymistyczne nastawienie, ale jest tylko bardzo niewielkie, wariancja estymatora LOOCV jest zwykle o wiele większa.
Dikran Torbacz
Czego zatem należy użyć do oceny wydajności? (Zakładając, że gromadzenie danych jest drogie, więc chcesz wykorzystać wszystkie dostępne dane, aby dopasować je do modelu).
Sideshow Bob
Prawdopodobnie Bootstrap. Większość modeli, których używam, ma parametry regularyzacji itp., Które należy dostroić, dlatego często używam LOOCV do strojenia modeli i bootstrapu lub powtarzanego wstrzymania do oceny wydajności.
Dikran Torbacz
@DikranMarsupial Czy jesteś pewien, że CV Leave-One-Out zapewnia pesymistyczne nastawienie? O ile wiem, zwykle zapewnia na przykład niższy szacunek błędu niż na przykład K-Fold. Ponadto, czy LOOCV nie ma wariancji 0? Możesz wykonać LOOCV tylko raz, a następnie „zabraknie próbki”. Jedyną wariancją, o której mogę pomyśleć, jest wariant wytworzony przez algorytmy szkoleniowe zastosowane do dopasowania modelu. Ale powinna to być wariancja powiązana z wariancją parametrów optymalnych, a nie z samym błędem modelu. Dziękuję Ci.
D1X