Różnice między walidacją krzyżową a ładowaniem początkowym w celu oszacowania błędu prognozowania

102

Chciałbym, aby twoje przemyślenia na temat różnic między weryfikacją krzyżową a ładowaniem początkowym oszacowały błąd prognozowania.

Czy lepiej działa w przypadku małych zestawów danych lub dużych zestawów danych?

dotacja
źródło

Odpowiedzi:

88

Sprowadza się to do wariancji i uprzedzeń (jak zwykle). CV jest zwykle mniej tendencyjne, ale krotnie CV ma dość dużą wariancję. Z drugiej strony, ładowanie początkowe ma tendencję do drastycznego zmniejszania wariancji, ale daje bardziej stronnicze wyniki (zwykle są pesymistyczne). Inne metody ładowania początkowego zostały dostosowane do radzenia sobie z błędem ładowania początkowego (takie jak reguły 632 i 632+).

Dwoma innymi podejściami byłoby „Monte Carlo CV”, zwane również „CV z pominięciem grupy”, które wykonuje wiele losowych podziałów danych (coś w rodzaju podziałów mini-treningowych i testowych). Wariancja jest bardzo niska dla tej metody, a błąd nie jest zbyt zły, jeśli odsetek danych w wstrzymaniu jest niski. Również powtórzone CV kilkakrotnie K-krotnie i uśrednia wyniki podobne do zwykłego K-krotnie. Jestem tego częściowo stronniczy, ponieważ utrzymuje niskie uprzedzenie i zmniejsza wariancję.

Edytować

W przypadku dużych próbek próby problemy z wariancją stają się mniej ważne, a część obliczeniowa jest bardziej problemem. Nadal trzymałbym się powtarzanego CV dla małych i dużych próbek.

Niektóre istotne badania są poniżej (szczególnie Kim i Molinaro).

Bibliografia

Bengio, Y. i Grandvalet, Y. (2005). Błąd systematyczny w szacowaniu wariancji k-krotnej walidacji krzyżowej. Modelowanie i analiza statystyczna dla złożonych problemów z danymi, 75–95.

Braga-Neto, UM (2004). Czy walidacja krzyżowa jest ważna dla klasyfikacji mikromacierzy małych próbek Bioinformatics, 20 (3), 374–380. doi: 10.1093 / bioinformatics / btg419

Efron, B. (1983). Szacowanie poziomu błędu reguły predykcji: poprawa walidacji krzyżowej. Journal of American Statistics Association, 316–331.

Efron, B., i Tibshirani, R. (1997). Ulepszenia w zakresie wzajemnej weryfikacji:. 632+ metoda ładowania początkowego. Journal of American Statistics Association, 548–560.

Furlanello, C., Merler, S., Chemini, C., i Rizzoli, A. (1997). Zastosowanie reguły bootstrap 632+ do danych ekologicznych. WIRN 97.

Jiang, W. i Simon, R. (2007). Porównanie metod ładowania początkowego i dostosowane podejście ładowania początkowego do oszacowania błędu prognozowania w klasyfikacji mikromacierzy. Statystyka w medycynie, 26 (29), 5320–5334.

Jonathan, P., Krzanowski, W., i McCarthy, W. (2000). W sprawie zastosowania weryfikacji krzyżowej do oceny wyników w prognozowaniu wielowymiarowym. Statystyka i informatyka, 10 (3), 209–229.

Kim, J.-H. (2009). Oszacowanie poziomu błędu klasyfikacji: powtarzana walidacja krzyżowa, powtarzane wstrzymanie i bootstrap. Statystyka obliczeniowa i analiza danych, 53 (11), 3735–3745. doi: 10.1016 / j.csda.2009.04.009

Kohavi, R. (1995). Badanie krzyżowej walidacji i bootstrap do szacowania dokładności i wyboru modelu. Międzynarodowa wspólna konferencja na temat sztucznej inteligencji, 14, 1137–1145.

Martin, J., i Hirschberg, D. (1996). Statystyka małych prób dla klasyfikacji poziomów błędu I: Pomiary wskaźnika błędu.

Molinaro, AM (2005). Oszacowanie błędu prognozy: porównanie metod ponownego próbkowania. Bioinformatics, 21 (15), 3301–3307. doi: 10.1093 / bioinformatics / bti499

Sauerbrei, W., i Schumacher 1, M. (2000). Bootstrap i walidacja krzyżowa w celu oceny złożoności modeli regresji opartych na danych. Analiza danych medycznych, 26–28.

Tibshirani, RJ i Tibshirani, R. (2009). Korekta odchylenia dla minimalnego poziomu błędu w walidacji krzyżowej. Przedruk Arxiv arXiv: 0908.2904.

topepo
źródło
2
Odchylenie Bootstrap nie jest pesymistyczne, jest optymistyczne (prosty Bootstrap nie .0632). Wynika to z tego, że Bootstrap używa wielu elementów treningowych do testowania modelu, co prowadzi do dużej masy w przypadku błędu próby.
D1X
33

@Frank Harrell wykonał wiele pracy nad tym pytaniem. Nie znam konkretnych referencji.

Ale raczej widzę te dwie techniki jako przeznaczone do różnych celów. Krzyżowa walidacja jest dobrym narzędziem przy podejmowaniu decyzji o modelu - pomaga uniknąć oszukiwania się w myśleniu, że masz dobry model, gdy w rzeczywistości jesteś nadmiernie dopasowany.

Kiedy twój model jest naprawiony, wtedy użycie bootstrap ma większy sens (przynajmniej dla mnie).

Istnieje wprowadzenie do tych pojęć (plus testy permutacji) przy użyciu R na http://www.burns-stat.com/pages/Tutor/bootstrap_resampling.html

Patrick Burns
źródło
2
Czy warto wybrać CV najpierw, aby wybrać model, a następnie użyć ładowania początkowego tych samych danych, aby ocenić błędy swoich szacunków? W szczególności chcę wykonać regresję liniową przy użyciu ML dla danych z nieznanym szumem innym niż gaussowski.
sebhofer,
9

Rozumiem, że ładowanie początkowe jest sposobem na oszacowanie niepewności w twoim modelu, podczas gdy walidacja krzyżowa jest używana do wyboru modelu i pomiaru dokładności predykcyjnej.

Dolina górska
źródło
wielkie dzięki za odpowiedzi. Myślałem, że ładowanie początkowe jest lepsze, gdy masz mały zestaw danych (<30 obs). Nie?
udziel
Tak myślałbym. Walidacja krzyżowa może nie być uzasadniona, jeśli masz małą próbkę. Możesz zrezygnować z jednej weryfikacji krzyżowej, ale jest to zbyt optymistyczne.
Glen,
Należy również zauważyć, że wykonanie ładowania początkowego małą próbką doprowadzi do pewnych stronniczych szacunków, jak zauważono w oryginalnym artykule Efrona.
Glen,
Czy pomiar dokładności predykcyjnej nie jest sposobem na oszacowanie niepewności? Rozumiem, że CV jest bardziej powszechne przy wyborze modelu, ale powiedzmy, że chcę oszacować AUC dla LASSO, czy CV lub ładowanie początkowe jest lepsze?
Max Ghenis,
9

Jedną różnicą jest to, że walidacja krzyżowa, podobnie jak jackknife, wykorzystuje wszystkie twoje punkty danych, podczas gdy ładowanie początkowe, które losowo próbkuje twoje dane, może nie osiągnąć wszystkich punktów.

Możesz uruchomić tak długo, jak chcesz, co oznacza większe ponowne próbkowanie, co powinno pomóc w przypadku mniejszych próbek.

Krzyżowa walidacja lub średnia wartość dla scyzoryka będą takie same jak średnia dla próbki, podczas gdy średnia dla bootstrapu prawdopodobnie nie będzie taka sama jak dla średniej dla próbki.

Ponieważ walidacja krzyżowa i waga scyzoryka wszystkie punkty próbki są takie same, powinny mieć mniejszy (choć prawdopodobnie niepoprawny) przedział ufności niż bootstrap.

Neil McGuigan
źródło
2
Neil, wydaje się, że co najmniej 2 z 4 twoje wypowiedzi są błędne. 1. Mimo że każda konkretna próbka boostrap obejmuje ~ 63% oryginalnych punktów danych, jeśli próbkujemy wiele (np. 10k) próbek bootstrap, jak zwykle, szansa, że ​​każdy punkt zostanie objęty co najmniej jednym z nich, wynosi zasadniczo 100%. 2. Właśnie wykonałem szybką kontrolę numeryczną - średnia próbek bootstrap i out-of-bootstrap jest bardzo zbliżona do średniej danych. Możesz sprawdzić się
Kochede,
Oto kod (kliknij „Edytuj”, aby go sformatować): zaimportuj numpy jako np, pandy jako pd n = 1000 B = 1000 y = np.random.randn (n) oznacza b, znaczyoob = [], [] dla b w zakres (B): ib = np. losowy. wybór (n, n, replace = True) meanb = y [ib] .mean () oznacza b.append (meanb) indoob = np.ones (n, dtype = bool) indoob [ib] = False meanoob = y [indoob] .mean () meanoob.append (meanoob) pd.Series (meanb) .hist (histtype = 'step') pd.Series (meanoob) .hist (histtype = 'step' ) print np.mean (średnich), np.mean (średnich), pd.Series (y) .mean ()
Kochede
@Kochede „zasadniczo 100%” to nie 100%. „Bardzo blisko średniej” to nie to samo, co dokładnie to samo co średnia. Używasz słów łasicy. Nie mylę się
Neil McGuigan,
Więc nie tylko podajesz błędne odpowiedzi, ale nalegasz na nie z demagogią, ok. Oczekiwany zasięg danych według próbek bootstrapu szybko zbliża się do 100% wraz ze wzrostem liczby próbek. W powyższym eksperymencie po mniej niż 10 próbkach ładowania początkowego wszystkie punkty danych są uderzane przez rozruch. Podobnie, oczekiwanie średniej próbek bootstrap jest równe średniej próbki. I w powyższym eksperymencie po 1000 próbkach ładowania początkowego różnica jest mniejsza niż 0,1% (użyj np.random.rand zamiast randn, ponieważ dla randn średnia to 0)
Kochede
Oto zaktualizowany kod w celach informacyjnych: zaimportuj numpy jako np, pandas jako pd; n = 1000; B = 1000; y = np.losowy.rand (n); oznacza b = []; objęte = np. zeros (n, dtype = bool); zasięg = []; #początkowa pętla dla bw zakresie (B): ib = np.losowy.choice (n, n, replace = True); objęte [ib] = prawda; pokrycie.append (covered.sum () * 1.0 / n); meanb = y [ib] .mean (); meanb.append (meanb); #end zasięg drukowania w pętli [: 10]; print np.mean (znaczy b), pd.Series (y) .mean (); print (np.mean (meanb) - pd.Series (y) .mean ()) / pd.Series (y) .mean ();
Kochede,
2

Są to dwie techniki ponownego próbkowania:

W ramach walidacji krzyżowej losowo dzielimy dane na kfold i pomaga to w nadmiernym dopasowaniu, ale takie podejście ma swoją wadę. Ponieważ wykorzystuje losowe próbki, niektóre próbki powodują poważny błąd. Aby zminimalizować CV ma techniki, ale nie jest tak potężny z problemami z klasyfikacją. Bootstrap pomaga w tym, poprawia błąd z własnej kontroli próbki .. po szczegóły, proszę zapoznać się ..

https://lagunita.stanford.edu/c4x/HumanitiesScience/StatLearning/asset/cv_boot.pdf

Reeves
źródło