Kiedy chcesz korzystać z AdaBoost?

14

Jak słyszałem o klasyfikatorze AdaBoost, o którym wielokrotnie wspominałem w pracy, chciałem lepiej zrozumieć, jak działa i kiedy można go użyć. Przeczytałem wiele artykułów i samouczków na ten temat, które znalazłem w Google, ale są pewne aspekty klasyfikatora, które wciąż nie mogę zrozumieć:

  1. Większość samouczków, które widziałem, mówi o AdaBoost jako znalezieniu najlepszej ważonej kombinacji wielu klasyfikatorów. To ma dla mnie sens. To, co nie ma sensu, to wdrożenia (np. MALLET), w których AdaBoost wydaje się akceptować tylko jednego słabego ucznia. Jak to ma sens? Jeśli AdaBoost ma tylko jeden klasyfikator, czy nie powinien po prostu zwrócić tego samego klasyfikatora o wadze 1? Jak wytwarza nowe klasyfikatory od pierwszego klasyfikatora?

  2. Kiedy ktoś chciałby korzystać z AdaBoost? Czytałem, że ma to być jeden z najlepszych gotowych klasyfikatorów, ale kiedy próbowałem podnieść klasyfikator MaxEnt, otrzymywałem wyniki F na poziomie 70% +, AdaBoost morduje go i daje mi f- wyniki około 15% przy bardzo wysokim przywołaniu i bardzo niskiej precyzji. Więc teraz jestem zdezorientowany. Kiedy chciałbym kiedykolwiek korzystać z AdaBoost? Jeśli to możliwe, szukam bardziej intuicyjnej, a nie ściśle statystycznej odpowiedzi.

YuliaPro
źródło

Odpowiedzi:

11

Adaboost może korzystać z wielu instancji tego samego klasyfikatora z różnymi parametrami. Zatem wcześniej liniowy klasyfikator można łączyć w klasyfikatory nieliniowe. Lub, jak lubią to ujmować ludzie AdaBoost, wielu słabych uczniów może uczynić jednego silnego ucznia. Ładne zdjęcie można znaleźć tutaj , na dole.

Zasadniczo działa tak, jak w przypadku każdego innego algorytmu uczenia się: w niektórych zestawach danych działa, w niektórych nie. Na pewno są tam zestawy danych, w których się wyróżnia. A może jeszcze nie wybrałeś odpowiedniego słabego ucznia. Czy próbowałeś regresji logistycznej? Czy wyobrażałeś sobie, jak ewoluują granice decyzji podczas dodawania uczniów? Może możesz powiedzieć, co się dzieje.

bayerj
źródło
(+1). Uwaga dodatkowa: Nawet parametry słabych uczniów, aby się nie różnić, zachowanie (tj. To, co przewidują) zmienia się, gdy zmienia się struktura zestawu danych (tak jak w przypadku wzmocnienia).
steffen
MaxEnt to regresja logistyczna. Wizualizacja ewolucji granic decyzyjnych byłaby w rzeczywistości bardzo przydatna. Jak można to zrobić? Ponadto nadal nie rozumiem, jak działa AdaBoost, gdy ma tylko jeden zestaw funkcji i jeden typ klasyfikatora (jak w MALETIE). Wydaje mi się to całkowicie sprzeczne z intuicją.
YuliaPro
Po prostu wykreśl swój zestaw danych. Dodatkowo wykreśl siatkę, w której wybierasz kolor dla każdego punktu, w jaki sposób jest on klasyfikowany przez twój system. Chyba działa to dobrze tylko w 2D. Nadal możesz wykreślić najważniejsze osie lub coś takiego. Jeśli masz tylko jeden zestaw funkcji i jeden klasyfikator, zmniejsza się on tylko do jednego klasyfikatora. Miałem wrażenie, że maksymalna entropia była paradygmatem, a nie konkretnym klasyfikatorem. Tak czy siak.
bayerj 30.03.11