Jak statystycznie porównać wydajność klasyfikatorów uczenia maszynowego?

29

W oparciu o szacunkową dokładność klasyfikacji chcę przetestować, czy jeden klasyfikator jest statystycznie lepszy na zestawie podstawowym niż inny klasyfikator. Dla każdego klasyfikatora wybieram próbkę szkoleniową i testową losowo z zestawu podstawowego, trenuję model i testuję model. Robię to dziesięć razy dla każdego klasyfikatora. Dlatego mam dziesięć dokładnych pomiarów dokładności klasyfikacji dla każdego klasyfikatora. Jak statystycznie przetestować, czy jest lepszym klasyfikatorem niż w podstawowym zestawie danych. Z jakiego testu T można korzystać?classifier1classifier2

entropia
źródło
Czy testowałeś klasyfikatory na tych samych próbkach? tj. próbka1, c1 (próbka1), c2 (próbka1)? A może użyłeś różnych próbek dla każdego klasyfikatora?
John Moeller,
Sparowany test t byłby odpowiedni w tym scenariuszu.
GEL
1
@lewellen: dokładność jest proporcją: testy t zwykle nie są odpowiednie.
cbeleites obsługuje Monikę
3
@JohnMoeller: „różnica proporcji” byłaby wyszukiwanym hasłem, niezależnym lub zależnym, którego jeszcze nie znamy. Jeśli jest sparowany: test McNemara. Domyślam się, że test t oznacza raczej małą próbkę, więc prawdopodobnie normalne przybliżenie nie jest dobrym pomysłem. Wybrałbym Metody statystyczne dla stawek i proporcji, aby wyszukać szczegóły.
cbeleites obsługuje Monikę
2
@JohnMoeller: Mówię, że każda dokładność jest proporcjonalna. Jeśli chcesz je porównać, użyj metod „różnicy proporcji”. Rozszerzyłem to na odpowiedź, aby zapobiec niekończącym się komentarzom.
cbeleites obsługuje Monikę

Odpowiedzi:

14

Przegląd i krytyka niektórych podejść do testów t podano w Wybieranie między dwoma algorytmami uczenia się na podstawie skalibrowanych testów , przybliżonych testów statystycznych do porównywania algorytmów uczenia się nadzorowanej klasyfikacji i porównywania klasyfikatorów: pułapek, których należy unikać, i zalecanego podejścia

entropia
źródło
Dietterich mówi: „Rozkład dwumianowy można dobrze aproksymować rozkładem normalnym dla rozsądnych wartości ”. Jak dotąd nie powiedziałeś nam, że masz rozsądne . @ 30 przypadków JohnMoellera to IMHO, a raczej niewiele dla normalnego przybliżenia (przynajmniej bez wiedzy o i ). nnp1p2
cbeleites obsługuje Monikę
Mam w bazie danych co najmniej 4000 rekordów na klasę, dlatego wybrana próbka może być mniejsza niż ta. Największą wadą testów różnicy proporcji jest to, że ignorują one „wewnętrzną zmienność algorytmu uczenia się”. Myślę, że jest to ważne dla klasyfikatora takiej sieci neuronowej, której używam.
entropia
Cóż, to zupełnie inna sytuacja niż ta, w którą zagrał JohnMoeller. Jeśli masz na myśli niestabilność modelu przez „zmienność wewnętrzną”: możesz to zmierzyć. Zaktualizuję moją odpowiedź.
cbeleites obsługuje Monikę
Aby wyjaśnić, 30 to liczba wyborów zestawów partycji test / pociąg, a nie liczba wybranych punktów testowych.
John Moeller
@JohnMoeller: przepraszam, całkowicie źle to zrozumiałem (pochodzący z pola, w którym „próbka” jest jakimś fizycznym okazem).
cbeleites obsługuje Monikę
10

Nie mam pod ręką książki Fleiss, więc wszystko to jest IIRC.

Odpowiadając na pytanie @ JohnMoeller w komentarzach w tej chwili: pierwotne pytanie jest IMHO bez odpowiedzi, tak jak jest.

Załóżmy więc, że mam 30 próbek i testuję c1 i c2 na każdej próbce i zapisuję dokładność dla każdej z nich.

robiąc to, otrzymujesz tabelę awaryjności 2 x 2, która daje poprawny / zły klasyfikator 1 w stosunku do poprawnego / błędnego klasyfikatora 2. Który jest punktem wyjścia do testu McNemara . Jest to więc porównanie w parach, które ma większą moc niż porównywanie „niezależnych” proporcji (które nie są całkowicie niezależne, jeśli pochodzą z losowego losowania z tej samej skończonej próbki).

Nie mogę teraz sprawdzić „małego wydruku” McNemara, ale 30 próbek to niewiele. Może być więc konieczne przejście z testu McNemara na dokładny test Fishera [lub coś innego], który oblicza prawdopodobieństwa dwumianowe.


Sposoby proporcji:
nie ma znaczenia, czy testujesz jeden i ten sam klasyfikator 10x z 10 przypadków testowych, czy raz ze wszystkimi tymi 100 przypadkami (tabela 2 x 2 liczy tylko wszystkie przypadki testowe).

Jeżeli 10 oszacowań dokładności dla każdego klasyfikatora w pierwotnym pytaniu uzyskano przez losowe wstrzymanie lub 10-krotną walidację krzyżową lub 10-krotność poza początkiem, zakłada się zwykle, że 10 modeli zastępczych obliczonych dla każdego klasyfikatora jest równoważnych (= mają tę samą dokładność), więc wyniki badań można łączyć *. W przypadku 10-krotnej walidacji krzyżowej zakłada się, że wielkość próbki testowej jest równa całkowitej liczbie próbek testowych. W przypadku innych metod nie jestem tego pewien: możesz przetestować ten sam przypadek więcej niż raz. W zależności od danych / problemu / aplikacji nie jest to tak dużo informacji, jak testowanie nowego przypadku.

* Jeśli modele zastępcze są niestabilne, założenie to się załamuje. Ale możesz to zmierzyć: Wykonaj iterację krotnego sprawdzania poprawności krzyżowej. Każde pełne uruchomienie daje jedną prognozę dla każdego przypadku. Jeśli więc porównasz prognozy dla tego samego przypadku testowego z wieloma różnymi modelami zastępczymi, możesz zmierzyć wariancję spowodowaną wymianą niektórych danych treningowych. Ta wariancja jest dodatkiem do wariancji ze względu na skończoną całkowitą wielkość próby.k

Umieść swoje iterowane wyniki CV w „poprawnej macierzy klasyfikacji”, przy czym każdy wiersz odpowiada jednemu przypadkowi i każdej kolumnie jednemu z modeli zastępczych. Teraz wariancja wzdłuż rzędów (usunięcie wszystkich pustych elementów) wynika wyłącznie z niestabilności w modelach zastępczych. Różnica w kolumnach wynika ze skończonej liczby przypadków użytych do testowania tego modelu zastępczego. Powiedzmy, że masz poprawnych predykcji spośród przetestowanych przypadków w kolumnie. Szacunkowa dokładność punktowa to , może być zmienna . Sprawdź, czy wariancja spowodowana niestabilnością jest duża czy mała w porównaniu do wariancji wynikającej ze skończonej wielkości próbki testowej.knp^=knσ2(p^)=σ2(kn)=p(1p)n

cbeleites obsługuje Monikę
źródło
Ach, okej To ostatni kawałek, który wszystko wyjaśnia, przynajmniej dla mnie. Dzięki.
John Moeller
Dzięki za odpowiedzi. Po prostu niejasne procedury. Mówisz, że 10-krotna walidacja krzyżowa preformy w jednym zestawie danych. Zmierz dokładność próbki trzymania, czyli oblicz macierz pomieszania 2x2. Dodaj dziesięć macierzy zamieszania 2x2. Wykonaj test McNemara na zagregowanej macierzy zamieszania 2x2.
entropia
@entropy: 1. Tabela kontyngencji 2x2 nie jest macierzą pomieszania. 2. Za każdym razem nowa próbka vs. testowanie obu klasyfikatorów na tych samych danych testowych: testy sparowane są mocniejsze (i tutaj możliwe). Zobacz zaktualizowaną odpowiedź.
cbeleites obsługuje Monikę
Przepraszam za to, tak, tabela awaryjna. Czy mam rację twierdząc, że test McNemara przekłada się również bezpośrednio na problem wielu klas.
entropia
@cbeleites bardzo dziękuję za odpowiedź !!! Myślę, że dokładnie odpowiedziałeś na moje pytania. Jednak nadal nie rozumiem dokładnej procedury, którą należy wykonać. Czy miałbyś coś przeciwko rozwinięciu ostatniego akapitu?
entropia