Cross-validation lub bootstrapping w celu oceny wydajności klasyfikacji?

24

Jaka jest najbardziej odpowiednia metoda próbkowania do oceny wydajności klasyfikatora na określonym zbiorze danych i porównania go z innymi klasyfikatorami? Cross-validation wydaje się być standardową praktyką, ale przeczytałem, że metody takie jak bootstrap .632 są lepszym wyborem.

W następstwie: czy wybór metryki wydajności wpływa na odpowiedź (jeśli użyję AUC zamiast dokładności)?

Moim ostatecznym celem jest być w stanie z pewnym przekonaniem stwierdzić, że jedna metoda uczenia maszynowego jest lepsza od drugiej w przypadku określonego zestawu danych.

kelvin_11
źródło
1
Bootstrap (z zamiennikiem) może być używany w zestawie danych treningowych, zamiast np. (Powtarzanej) krotnej weryfikacji krzyżowej. Zobacz także: Różnice między weryfikacją krzyżową a ładowaniem początkowym w celu oszacowania błędu prognozowania , Omówienie ładowania początkowego w celu weryfikacji i wyboru modelu .
chl

Odpowiedzi:

42

Jedną ważną różnicą w zwykłym sposobie, w jaki stosuje się metody weryfikacji krzyżowej i metody „out-of-bootstrap”, jest to, że większość osób stosuje walidację krzyżową tylko raz (tj. Każdy przypadek jest testowany dokładnie raz), podczas gdy walidacja „poza bootstrap” jest wykonywana z dużą liczbą powtórzeń / iteracji. W takiej sytuacji weryfikacja krzyżowa podlega większej wariancji z powodu niestabilności modelu. Można tego jednak uniknąć, stosując np. Powtarzaną / powtarzaną krotną walidację krzyżową. Jeśli tak się stanie, przynajmniej w przypadku zestawów danych spektroskopowych, z którymi pracowałem, całkowity błąd obu schematów ponownego próbkowania wydaje się w praktyce taki sam.k

Odradza się jednoznaczną weryfikację krzyżową, ponieważ nie ma możliwości zmniejszenia wariancji typu niestabilności modelu, a istnieją pewne klasyfikatory i problemy, w których wykazuje ona ogromne pesymistyczne nastawienie.

.632 bootstrap wykonuje rozsądną robotę, o ile zmieszany błąd ponownego próbkowania nie jest zbyt optymistyczny. (Np. W przypadku danych, z którymi pracuję, bardzo szerokie macierze z wieloma zmiennymi, to nie działa zbyt dobrze, ponieważ modele są podatne na poważne przeregulowanie). Oznacza to również, że unikałbym używania bootstrapu .632 do porównywania modeli o różnym stopniu złożoności. Z .632+ bootstrap nie mam doświadczenia: jeśli wystąpi przeregulowanie i zostanie poprawnie wykryty, będzie równy pierwotnej szacunkowej wartości po bootstrapie, więc trzymam się zwykłego oob lub iteracji / powtarzanej krzyżowej weryfikacji moich danych.

Literatura:

  • Kohavi, R .: Badanie krzyżowej walidacji i bootstrap do oceny dokładności i wyboru modeli Postępowanie w sprawie sztucznej inteligencji 14. Międzynarodowa Konferencja Wspólna, 20–25 sierpnia 1995 r., Montreal, Quebec, Kanada, 1995, 1137–1145.
    (Klasyczny )

Dougherty i Braga-Neto mają wiele publikacji na ten temat , np

Wybór danych:

Moim ostatecznym celem jest być w stanie z pewnym przekonaniem stwierdzić, że jedna metoda uczenia maszynowego jest lepsza od drugiej w przypadku określonego zestawu danych.

  • Użyj testu sparowanego, aby to ocenić. Aby porównać proporcje, spójrz na test McNemara.

  • Na odpowiedź na to wpłynie wybór metryki. Ponieważ miary błędu typu regresji nie mają etapu „hartowania” przy podejmowaniu decyzji dotyczących cięcia z progiem, często mają mniejszą wariancję niż ich odpowiedniki klasyfikacyjne. Miary takie jak dokładność, które są w zasadzie proporcjami, będą wymagały ogromnej liczby przypadków testowych, aby ustalić wyższość jednego klasyfikatora nad drugim.

Fleiss: „Metody statystyczne dla stawek i proporcji” podaje przykłady (i tabele) dla niesparowanego porównania proporcji. Aby dać ci wyobrażenie o tym, co mam na myśli przez „ogromne rozmiary próbek”, spójrz na obraz w mojej odpowiedzi na to drugie pytanie . Sparowane testy, takie jak McNemar, wymagają mniej przypadków testowych, ale IIRC nadal w najlepszym przypadku jest w połowie (?) Wielkości próbki potrzebnej do niesparowanego testu.

  • Aby scharakteryzować wydajność klasyfikatora (hartowane), zwykle potrzebujesz krzywej roboczej o co najmniej dwóch wartościach, takich jak ROC (czułość vs. specyficzność) lub tym podobne.
    Rzadko stosuję ogólną dokładność lub AUC, ponieważ moje aplikacje zwykle mają ograniczenia, np. Że czułość jest ważniejsza niż specyficzność, lub pewne ograniczenia tych środków powinny zostać spełnione. Jeśli wybierzesz charakterystykę sumy „pojedynczej liczby”, upewnij się, że punkt pracy modeli, na które patrzysz, znajduje się w rozsądnym zakresie.

  • Aby uzyskać dokładność i inne miary wydajności podsumowujące wydajność dla kilku klas zgodnie z etykietami referencyjnymi, należy wziąć pod uwagę względną częstotliwość klas, które napotkasz w aplikacji - co niekoniecznie jest takie samo jak w twojej dane szkoleniowe lub testowe.

  • Provost, F. i in. : Sprawa przeciw szacunkowi dokładności przy porównywaniu algorytmów indukcyjnych w postępowaniu XV Międzynarodowej Konferencji na temat Uczenia Maszynowego, 1998


edycja: porównywanie wielu klasyfikatorów

Myślałem o tym problemie przez jakiś czas, ale nie znalazłem jeszcze rozwiązania (ani nie spotkałem nikogo, kto miałby rozwiązanie).

Oto co mam do tej pory:

Na razie zdecydowałem, że „optymalizacja jest źródłem wszelkiego zła”, i zamiast tego podchodzę do zupełnie innego podejścia:
decyduję w jak największym stopniu na podstawie wiedzy eksperckiej na temat problemu. To w rzeczywistości pozwala dość zawęzić pewne rzeczy, dzięki czemu często mogę uniknąć porównania modeli. Kiedy muszę porównywać modele, staram się być bardzo otwarty i jasny, przypominając ludziom o niepewności oszacowania wydajności i że szczególnie wielokrotne porównywanie modeli jest AFAIK nadal nierozwiązanym problemem.


Edycja 2: sparowane testy

Wśród modeli możesz dokonać porównań między dwoma różnymi modelami (co jest ogromną sytuacją wielokrotnego porównywania), nie wiem jak to zrobić poprawnie. Jednak sparowanen12)(n2)-n)testu odnosi się tylko do faktu, że ponieważ wszystkie modele są testowane z dokładnie tymi samymi przypadkami testowymi, z jednej strony można podzielić przypadki na przypadki „łatwe” i „trudne”, dla których wszystkie modele osiągają prawidłowy wynik (lub zła) prognoza. Nie pomagają w rozróżnieniu modeli. Z drugiej strony istnieją „interesujące” przypadki, które są przewidywane poprawnie przez niektóre, ale nie przez inne modele. Tylko te „interesujące” przypadki muszą być brane pod uwagę w celu oceny wyższości, ani „łatwe”, ani „trudne” przypadki nie pomagają w tym. (W ten sposób rozumiem ideę stojącą za testem McNemara).

W przypadku masowo wielokrotnego porównania modeli, sądzę, że jednym problemem jest to, że jeśli nie masz szczęścia, im więcej modeli porównasz, tym mniej przypadków będziesz w stanie wykluczyć z dalszych rozważań: nawet jeśli wszystkie modele są naprawdę równe ogólna wydajność staje się coraz mniej prawdopodobne, że przypadek zawsze kończy się prawidłowym (lub zawsze błędnym) przewidywaniem przez modeli.nn

cbeleites obsługuje Monikę
źródło
Dziękuję za szczegółową odpowiedź! Byłbym bardzo wdzięczny, gdybyś mógł rozwinąć kwestię: „ Użyj sparowanego testu, aby to ocenić. Aby porównać proporcje, spójrz na test McNemara. ” Powinienem nieco sformułować moje pytanie: Chciałbym porównać kilka maszyn metody uczenia się od razu, niekoniecznie tylko pary. Nie od razu jest dla mnie jasne, w jaki sposób sparowane testy mogą to osiągnąć.
kelvin_11,
3
(+6) Niezła odpowiedź.
chl
@cbeleites Kocham cię za ten komentarz. Dla znaczenia porównania wielu modeli - co z metodami analizy wariancji (ANOVA)? takich jak Kruskal – Wallis ?
Serendipity
1
@Serendipity: Naprawdę nie wiem wystarczająco dużo o Kruskal-Wallis, aby dać ci odpowiedź tutaj. Podejrzewam jednak, że metody podobne do ANOVA nie są tym, co jest tutaj potrzebne, ponieważ (1) nie wykorzystuje sparowanej natury danych i (2) zyskuje moc w porównaniu z wieloma porównaniami, ponieważ hipoteza zerowa to tylko „wszystkie modele” wykonaj równo ”- jeśli zostanie odrzucone, nadal nie wiesz, który algorytm działa inaczej. Można go więc użyć tylko do podkreślenia negatywnych wyników (nie ma znaczenia, który algorytm wybierzesz). Podejrzewam, że istnieje duża strefa, w której ANOVA mówi wam, że nie wszystkie modele ...
cbeleites obsługuje Monikę
... są równe, ale nie masz wystarczających informacji, aby umożliwić wiele porównań potrzebnych do zidentyfikowania lepszych modeli.
cbeleites wspiera Monikę
6

Potrzebujesz modyfikacji w bootstrapie (.632, .632+) tylko dlatego, że w oryginalnych badaniach stosowano nieciągłą niewłaściwą regułę punktacji (odsetek poprawnie sklasyfikowany). W przypadku innych wyników dokładności zwykły bootstrap optymizmu zwykle działa dobrze. Aby uzyskać więcej informacji, zobacz http://biostat.mc.vanderbilt.edu/RmS#Studies_of_Methods_Used_in_the_T

Niewłaściwe reguły punktacji wprowadzają cię w błąd w wyborze funkcji i ich wagi. Innymi słowy, wszystko, co może pójść nie tak, pójdzie nie tak.

Frank Harrell
źródło
4

Z „Applied Predictive Modeling., Khun. Johnson . s. 78

„Żadna metoda ponownego próbkowania nie jest jednakowo lepsza od innej; wyboru należy dokonać, biorąc pod uwagę kilka czynników. Jeśli wielkość próbki jest niewielka, zalecamy stosowanie powtarzanej 10-krotnej walidacji krzyżowej z kilku powodów; właściwości odchylenia i wariancji są dobre i podane wielkość próby, koszty obliczeniowe nie są duże. Jeśli celem jest wybór między modelami, a nie uzyskanie najlepszego wskaźnika wydajności, można uzasadnić zastosowanie jednej z procedur ładowania początkowego, ponieważ mają one bardzo niską wariancję. W przypadku dużych próbek różnice między metodami ponownego próbkowania stają się mniej wyraźne, a wydajność obliczeniowa wzrasta. ” p. 78

Ponadto, biorąc pod uwagę wybór dwóch podobnych wyników, generalnie preferowany jest bardziej interpretowalny model. Na przykład (z tego samego tekstu), używając 10-krotnego CV, klasyfikator SVM miał oszacowanie 75% dokładności z wynikami ponownego próbkowania między 66 a 82%. Te same parametry zastosowano w klasyfikatorze regresji logistycznej z dokładnością 74,9% i tym samym zakresem ponownego próbkowania. Prostszy model regresji logistycznej może być preferowany, ponieważ łatwiej interpretować wyniki.

poklepać
źródło
4
Zauważ, że wariancja, którą możesz zmniejszyć , uruchamiając dużą liczbę iteracji / powtórzeń bootstrap / cross validation, jest tylko częścią wariancji, która wynika z niestabilności modeli zastępczych. Możesz zmierzyć, czy jest to znaczący wkład w całkowitą wariancję poprzez walidację krzyżową, ponieważ testuje każdą próbkę dokładnie raz podczas każdego przebiegu, więc wariancja spowodowana skończoną wielkością próbki nie pojawia się w porównaniu średnich średnich całkowitych przebiegów walidacji krzyżowej . W przypadku klasyfikacji „twardej” można obliczyć wariancję ze względu na skończoną wielkość próbki z rozkładu dwumianowego.
cbeleites obsługuje Monikę
@cbeleites: Czy możesz wyjaśnić trochę, co masz na myśli, mówiąc: „testuje każdą próbkę dokładnie raz podczas każdego przebiegu, więc wariancja wynikająca ze skończonej wielkości próbki nie pojawia się w porównaniu średnich średnich całkowitych przebiegów weryfikacji krzyżowej”. (referencje też są w porządku!) (+1 wyraźnie)
usεr11852 mówi Przywróć Monic
@ usεr11852: każdy przypadek jest testowany dokładnie raz na przebieg weryfikacji krzyżowej. Wyobraź sobie tabelę wyników przebiegu CV n_sample xr. Jeśli mamy stabilne przewidywania, wszystkie przewidywania r dla tego samego przypadku są takie same. Tzn. Nie ma wariancji wzdłuż rzędów. Ale różne przypadki mogą mieć różne prognozy (chyba że mamy np. 100% dokładności): mamy wariancję wzdłuż kolumn. Teraz standardową oceną powtarzanej / powtarzanej walalizacji krzyżowej jest porównanie średnich kolumnowych. Stabilnych modeli, są dokładnie takie same, chociaż zrobić mają wariancję wzdłuż kolumn, czyli między przypadkach.
cbeleites wspiera Monikę
(Jeśli modele / prognozy są niestabilne, otrzymujemy różne prognozy dla różnych modeli zastępczych i widzimy również wariancję wzdłuż wierszy. Plus pewną dodatkową wariancję wzdłuż kolumn, ponieważ każda kolumna w krotnym CV obejmuje k różnych modeli zastępczych. ) Tak więc do pomiaru stabilności modelu / prognozy (nie) może być jeszcze bardziej bezpośrednie przejście bezpośrednio na wariancję wzdłuż rzędów, tj. Wariancję prognoz różnych modeli zastępczych dla tego samego przypadku.
cbeleites wspiera Monikę
1
@cbeleites: Dziękuję bardzo za wyjaśnienie. Teraz mogę docenić punkt, w którym robisz więcej.
usεr11852 mówi Przywróć Monic