Tutaj @gung odnosi się do reguły .632+. Szybkie wyszukiwanie w Google nie daje łatwej do zrozumienia odpowiedzi na pytanie, co oznacza ta reguła i do jakiego celu jest używana. Czy ktoś mógłby wyjaśnić zasadę .632+?
Przejdę do estymatora 0.632, ale będzie to nieco długi rozwój:
Załóżmy, że chcemy przewidzieć z za pomocą funkcji , gdzie może zależeć od niektórych parametrów, które są szacowane przy użyciu danych , np.X f f ( Y , X )
Naiwnym oszacowaniem błędu prognozowania jest gdzie jest pewną funkcją straty, np. Kwadratową utratą błędu. Jest to często nazywane błędem treningowym. Efron i in. nazywa to pozornym poziomem błędu lub wskaźnikiem ponownego podstawienia. Nie jest to zbyt dobre, ponieważ wykorzystujemy nasze dane do dopasowania . Powoduje to, że jest tendencyjny w dół. Chcesz wiedzieć, jak dobrze twój model radzi sobie z przewidywaniem nowych wartości.
Często używamy walidacji krzyżowej jako prostego sposobu oszacowania oczekiwanego błędu prognozowania poza próbą (jak dobrze nasz model radzi sobie z danymi, których nie ma w naszym zestawie szkoleniowym?).
Popularnym sposobem na to jest przeprowadzanie krzyżowej weryfikacji -fold. Podziel swoje dane na grup (np. 10). Dla każdej grupy dopasuj swój model do pozostałych grup i przetestuj go na tej grupie. Nasz zweryfikowany krzyżowo błąd prognozy dla dodatkowych próbek to tylko średnia gdzie jest jakąś funkcją indeksu, która wskazuje partycję, do której przydzielona jest obserwacja a to przewidywana wartość przy użyciu danych spoza zestawu .
Estymator około obiektywne dla prawdziwego błąd przewidywania, gdy i ma większą zmienność i jest bardziej kosztowne obliczeniowo na większej . Zatem po raz kolejny widzimy kompromis między odchyleniem a wariancją.
Zamiast weryfikacji krzyżowej moglibyśmy użyć ładowania początkowego, aby oszacować błąd przewidywania dodatkowej próby. Ponowne próbkowanie Bootstrap można wykorzystać do oszacowania rozkładu próbkowania dowolnej statystyki. Jeśli nasze dane treningowe to , możemy pomyśleć o pobraniu próbek bootstrap (z wymianą) z tego zestawu gdzie każdy jest zbiorem próbek. Teraz możemy użyć naszych próbek ładowania początkowego, aby oszacować błąd przewidywania dodatkowej próby: gdzie to przewidywana wartość w z modelu dopasowanego do
Jeśli jednak mamy wysoce przewidywaną funkcję przewidywania (tj. Overline ), to nawet estymator .632 będzie tendencyjny w dół. Estymator .632+ został zaprojektowany tak, aby był mniej tendencyjnym kompromisem między i . with gdzie to poziom błędu braku informacji, oszacowany na podstawie oceny modelu prognozowania dla wszystkich możliwych kombinacji kieruje na i predyktory .
Tutaj mierzy względną częstość przeładowania. Jeśli nie ma przeregulowania (R = 0, gdy ) jest to równe estymatorze .632.
Więcej informacji znajdziesz w części 3 tego 1 artykułu. Podsumowując, jeśli nazywasz próbą liczb z losowanych i zastępowanych, zawiera średnio około unikalne elementy.S n {1:n} S (1−e−1)n≈0.63212056n
Rozumowanie jest następujące. Wypełniamy próbkując razy (losowo i zamiennie) z . Rozważ konkretny indeks .S={s1,…,sn} i=1,…,n {1:n} m∈{1:n}
Następnie:
i
i to prawda (intuicyjnie, ponieważ próbujemy z zamianą, prawdopodobieństwo nie zależy od )∀1≤i≤n i
a zatem
Możesz również przeprowadzić tę małą symulację, aby sprawdzić empirycznie jakość aproksymacji (która zależy od ):n
1. Bradley Efron i Robert Tibshirani (1997). Ulepszenia walidacji krzyżowej: metoda Bootstrap .632+ . Journal of the American Statistics Association , t. 92, nr 438, s. 548--560.
źródło
Z mojego doświadczenia, opartego głównie na symulacjach, warianty bootstrapu 0,632 i 0,632+ były potrzebne tylko z powodu poważnych problemów spowodowanych użyciem niewłaściwej reguły punktacji dokładności, a mianowicie odsetka „sklasyfikowanego” poprawnie. Gdy używasz prawidłowych (np. Wynik oparty na dewiacji lub wynik Briera) lub półprawidłowych (np. -index = AUROC) reguł, standardowy bootstrap optymizmu Efron-Gong działa dobrze.c
źródło
Te odpowiedzi są bardzo przydatne. Nie mogłem znaleźć sposobu na zademonstrowanie tego za pomocą matematyki, więc napisałem trochę kodu w języku Python, który działa całkiem dobrze:
źródło