Wzmocnienie modelu regresji logistycznej

11

Adaboost to kompleksowa metoda, która łączy wielu słabych uczniów, tworząc silną. Wszystkie przykłady adaboost, które przeczytałem, wykorzystują pnie decyzji / drzewa jako słabych uczniów. Czy mogę korzystać z różnych słabych uczniów w Adaboost? Na przykład, jak zaimplementować adaboost (ogólnie wzmocnienie), aby wzmocnić model regresji logistycznej?

Jedną z głównych różnic w drzewach klasyfikacji i regresji logistycznej jest to, że poprzednie klasy danych wyjściowych (-1,1), podczas gdy regresja logistyczna generuje sondy. Jednym z pomysłów jest wybranie najlepszej cechy X z zestawu funkcji i podniesienie progu (0,5?), Aby przekonwertować sondy na klasy, a następnie użyć ważonej regresji logistycznej, aby znaleźć następną cechę itp.

Ale wyobrażam sobie, że istnieje ogólny algorytm służący do podnoszenia różnych słabych uczniów innych niż pniaki decyzyjne, które generują prawdopodobieństwa. Wierzyłem, że Logitboost jest odpowiedzią na moje pytanie, ale spróbowałem przeczytać artykuł „Addytywna regresja logistyczna” i utknąłem na środku.

gnikol
źródło

Odpowiedzi:

7

Nie należy mylić obsługi predyktorów (przez podstawowych uczących się, np. Kikutów) i obsługi funkcji straty podczas wzmacniania. Chociaż AdaBoost może być uważany za znajdowanie kombinacji podstawowych uczniów w celu zminimalizowania błędu błędnej klasyfikacji, cytowany artykuł „Addytywna regresja logistyczna” pokazuje, że można go również sformułować w celu zminimalizowania funkcji straty wykładniczej. Ta wiedza otworzyła podejście wspomagające do szerokiej klasy problemów związanych z uczeniem maszynowym, które minimalizują różne funkcje strat poprzez zwiększenie gradientu . Reszty pasujące na każdym etapie to pseudo-reszty obliczone na podstawie gradientu funkcji straty. Nawet jeśli predyktory są modelowane jako kikuty binarne, dane wyjściowe modelu nie muszą być zatem wyborem binarnym.

Jak wynika z innej odpowiedzi, liniowi uczniowie podstawowi mogą nie działać na rzecz wzmocnienia, ale liniowi uczniowie podstawowi nie są wymagani do „wzmocnionej regresji” w sensie standardowym ani logistycznym. Zdecydowanie nieliniowe pnie można łączyć jako powolnych uczniów, aby zminimalizować odpowiednie funkcje utraty. Nadal nazywa się to „regresją wzmocnioną”, mimo że jest daleki od standardowego modelu regresji liniowej we współczynnikach predyktorów. Funkcja strat może być funkcjonalnie taka sama dla modeli liniowych i modeli „regresji wzmocnionej” z kikutami lub drzewami jako predyktorami. Rozdział 8 ISLR wyjaśnia to dość wyraźnie.

Jeśli więc chcesz regresji logistycznej odpowiadającej regresji wzmocnionej, skoncentruj się raczej na funkcji utraty niż na podstawowych uczniach. To właśnie robi podejście LogitBoost w cytowanym przez ciebie artykule: zminimalizuj utratę logów zamiast straty wykładniczej ukrytej w adaboost. Strona Wikipedii AdaBoost opisuje tę różnicę.

Wielu uczestników tej strony twierdzi, że przewidywanie logarytmiczne / prawdopodobieństwa jest wysoce preferowane niż ścisłe przewidywanie klasyfikacji tak / nie, ponieważ ta pierwsza bardziej ogólnie dopuszcza różne kompromisy między dodatkowymi kosztami prognoz fałszywie dodatnich i fałszywie ujemnych . Jak wskazuje odpowiedź na powiązane pytanie , możliwe jest uzyskanie szacunkowych prawdopodobieństw na podstawie silnego klasyfikatora pochodzącego z AdaBoost, ale LogitBoost może również dać lepszą wydajność.

Implementacje wzmocnienia gradientu dla klasyfikacji mogą dostarczyć informacji na temat podstawowych prawdopodobieństw. Na przykład strona o zwiększaniu gradientu pokazuje, w jaki sposób sklearnkod pozwala na wybór między utratą dewiacji dla regresji logistycznej i wykładniczej straty dla AdaBoost, a funkcjami dokumentującymi przewidywanie prawdopodobieństwa na podstawie modelu z podwyższonym gradientem.

EdM
źródło
Bardzo dziękuję za odpowiedź. Jeśli dobrze to rozumiem, aby osiągnąć funkcjonalność regresji logistycznej w kontekście wzmocnienia, wszystko, co muszę zrobić, to zastosować algorytm wzmocnienia gradientu z funkcją utraty logistyki i drzewami klasyfikacji słabych uczniów? Ale drzewa klasyfikacji generują {-1,1}, podczas gdy regresja logistyczna, która generuje prawdopodobieństwa. Ponadto drzewa klasyfikacji próbują zminimalizować indeks gini zamiast straty logistycznej. Tęsknię za czymś podstawowym. Gdzie umieścić straty logistyczne? Jak wyprowadzić sondy z modelu?
gnikol
Rozumiem koncepcję, w której y jest ciągłe, ponieważ drzewa regresji minimalizują mse, która jest tą samą funkcją straty z regresją liniową. Dlatego wielokrotnie dopasowywałem drzewo regresji do reszt. Ale w kontekście klasyfikacji drzewa klasyfikacji minimalizują indeks Gini lub coś podobnego. Jak to się wiąże z regresją logistyczną lub funkcją utraty regresji logistycznej?
gnikol
@gnikol Poprawiłem swoją odpowiedź w taki sposób, że mam nadzieję, że wyjaśni to zarówno Tobie, jak i innym czytelnikom. Reszty nadające się do wzmocnienia gradientu są pseudo-resztami obliczonymi z gradientu funkcji straty; wybór funkcji straty odróżnia AdaBoost od LogitBoost. W każdym przypadku prawdopodobieństwo można uzyskać od silnego ucznia; W ostatnim akapicie podałem link do jednego z przykładów realizacji.
EdM
5

W rzeczywistości mamy bardzo podobne pytanie w sprawie regresji. I mieliśmy bardzo dobrą odpowiedź @Matthew Drury

Zwiększanie gradientu dla regresji liniowej - dlaczego to nie działa?

Model liniowy (taki jak regresja logistyczna) nie nadaje się do wzmocnienia. Powodem jest to, że jeśli dodasz dwa modele liniowe razem, wynikiem jest inny model liniowy. Z drugiej strony dodanie dwóch kikutów decyzyjnych lub drzew będzie miało bardziej skomplikowany i interesujący model (już nie drzewo).

Szczegóły można znaleźć w tym poście. W tym linku dowiedziałem się, dlaczego dodanie dwóch modeli liniowych nie jest interesujące. I pokazuję wpływ wzmocnienia na iterację pnia decyzji przez iterację.

Jak działa liniowy uczeń w wzmacnianiu? A jak to działa w bibliotece xgboost?

Należy zauważyć, że drzewo decyzyjne / pień nie jest „modelem liniowym” podobnym do regresji logistycznej.

Zobacz ten post, aby uzyskać szczegółowe informacje

Czy kikut decyzji jest modelem liniowym?

Haitao Du
źródło