Stärkung eines logistischen Regressionsmodells

11

Adaboost ist eine Ensemblemethode, die viele schwache Lernende zu einer starken kombiniert. Alle Beispiele von Adaboost, die ich gelesen habe, verwenden Entscheidungsstümpfe / -bäume als schwache Lernende. Kann ich in Adaboost verschiedene schwache Lernende verwenden? Wie kann beispielsweise Adaboost (im Allgemeinen Boosting) implementiert werden, um ein logistisches Regressionsmodell zu verbessern?

Ein Hauptunterschied zwischen Klassifizierungsbäumen und logistischer Regression besteht darin, dass die ersteren Klassen (-1,1) ausgeben, während die logistische Regression Probs ausgibt. Eine Idee besteht darin, das beste Merkmal X aus einer Reihe von Merkmalen auszuwählen und einen Schwellenwert (0,5?) Zu ermitteln, um die Probs in Klassen umzuwandeln, und dann eine gewichtete logistische Regression zu verwenden, um das nächste Merkmal usw. zu finden.

Aber ich stelle mir vor, dass es einen allgemeinen Algorithmus gibt, der verschiedene schwache Lernende fördert, anders als Entscheidungsstümpfe, die Wahrscheinlichkeiten ausgeben. Ich glaubte, dass Logitboost die Antwort auf meine Frage ist, aber ich versuchte, das Papier "Additive Logistic Regression" zu lesen und blieb in der Mitte stecken.

Gnikol
quelle

Antworten:

7

Verwechseln Sie nicht den Umgang mit den Prädiktoren (über Basislerner, z. B. Stümpfe) und den Umgang mit der Verlustfunktion beim Boosten. Obwohl AdaBoost als Suche nach Kombinationen von Basislernern zur Minimierung von Fehlklassifizierungsfehlern angesehen werden kann, zeigt das von Ihnen zitierte Papier "Additive Logistic Regression" , dass es auch so formuliert werden kann, dass eine exponentielle Verlustfunktion minimiert wird. Diese Erkenntnis eröffnete den Boosting-Ansatz für eine breite Klasse von Problemen des maschinellen Lernens, die differenzierbare Verlustfunktionen durch Gradienten-Boosting minimieren . Die Residuen, die bei jedem Schritt angepasst werden, sind Pseudo-Residuen, die aus dem Gradienten der Verlustfunktion berechnet werden. Selbst wenn die Prädiktoren als binäre Stümpfe modelliert werden, muss die Ausgabe des Modells keine binäre Wahl sein.

Wie eine andere Antwort besagt, arbeiten Lernende mit linearer Basis möglicherweise nicht für das Boosten, aber Lernende mit linearer Basis sind weder im Standard- noch im logistischen Sinne für die "verstärkte Regression" erforderlich. Entscheidend nichtlineare Stümpfe können als langsame Basislerner kombiniert werden, um geeignete Verlustfunktionen zu minimieren. Es wird immer noch als "verstärkte Regression" bezeichnet, obwohl es weit von einem Standard-Regressionsmodell entfernt ist, das in den Koeffizienten der Prädiktoren linear ist. Die Verlustfunktion kann für lineare Modelle und "Boosted Regression" -Modelle mit Stümpfen oder Bäumen als Prädiktoren funktional gleich sein. Kapitel 8 der ISLR macht dies ziemlich deutlich.

Wenn Sie also eine logistische Regression wünschen, die einer verstärkten Regression entspricht, konzentrieren Sie sich eher auf die Verlustfunktion als auf die Basislerner. Dies ist der Ansatz des LogitBoost-Ansatzes in dem von Ihnen zitierten Artikel: Minimieren Sie einen Protokollverlust und nicht den in Adaboost implizierten exponentiellen Verlust. Die Wikipedia AdaBoost-Seite beschreibt diesen Unterschied.

Viele Teilnehmer dieser Website würden argumentieren, dass eine auf Log-Odds / Wahrscheinlichkeiten basierende Vorhersage einer strengen Ja / Nein-Klassifizierungsvorhersage vorzuziehen ist, da erstere im Allgemeinen unterschiedliche Kompromisse zwischen den zusätzlichen Kosten falsch-positiver und falsch-negativer Vorhersagen zulässt . Wie die Antwort auf Ihre verwandte Frage zeigt, ist es möglich, geschätzte Wahrscheinlichkeiten aus dem von AdaBoost abgeleiteten starken Klassifikator zu erhalten, aber LogitBoost bietet möglicherweise eine bessere Leistung.

Implementierungen der Gradientenverstärkung zur Klassifizierung können Informationen über die zugrunde liegenden Wahrscheinlichkeiten liefern. Diese Seite zum Gradienten-Boosting zeigt beispielsweise, wie sklearnCode die Wahl zwischen Abweichungsverlust für die logistische Regression und Exponentialverlust für AdaBoost ermöglicht, und dokumentiert Funktionen zur Vorhersage von Wahrscheinlichkeiten aus dem Gradienten-Boosting-Modell.

EdM
quelle
Ich danke Ihnen sehr für Ihre Antwort. Wenn ich es richtig verstehe, um die Funktionalität der logistischen Regression im Zusammenhang mit dem Boosten zu erreichen, muss ich nur den Gradienten-Boosting-Algorithmus mit der logistischen Verlustfunktion und den Klassifizierungsbäumen schwacher Lernender verwenden? Die Klassifizierungsbäume geben jedoch {-1,1} aus, während die logistische Regression Wahrscheinlichkeiten ausgibt. Darüber hinaus versuchen die Klassifizierungsbäume, den Gini-Index anstelle des logistischen Verlusts zu minimieren. Ich vermisse hier etwas Grundlegendes. Wo soll der Logistikverlust hingelegt werden? Wie werden Probs aus dem Modell ausgegeben?
Gnikol
Ich verstehe das Konzept, bei dem y stetig ist, weil Regressionsbäume die mse minimieren, die dieselbe Verlustfunktion wie die lineare Regression darstellt. Daher passe ich wiederholt einen Regressionsbaum an die Residuen an. Im Zusammenhang mit der Klassifizierung minimieren die Klassifizierungsbäume jedoch den Gini-Index oder ähnliches. Wie hängt das mit der logistischen Regression oder der Verlustfunktion der logistischen Regression zusammen?
Gnikol
@gnikol Ich habe meine Antwort so überarbeitet, dass ich hoffe, dass dies sowohl Ihnen als auch anderen Lesern klarer wird. Die Residuen, die für die Gradientenverstärkung geeignet sind, sind Pseudo-Residuen, die aus dem Gradienten der Verlustfunktion berechnet werden. Die Wahl der Verlustfunktion unterscheidet AdaBoost von LogitBoost. Wahrscheinlichkeiten können in jedem Fall vom starken Lernenden erhalten werden; Ich habe im letzten Absatz einen Link zu einem Beispiel für eine Implementierung bereitgestellt.
EdM
5

Tatsächlich haben wir hier eine sehr ähnliche Frage zum Regressionsfall. Und wir hatten eine sehr gute Antwort von @Matthew Drury

Gradientenverstärkung für lineare Regression - warum funktioniert das nicht?

Das lineare Modell (wie die logistische Regression) eignet sich nicht zum Boosten. Der Grund ist, wenn Sie zwei lineare Modelle addieren, ist das Ergebnis ein anderes lineares Modell. Wenn Sie dagegen zwei Entscheidungsstümpfe oder Bäume hinzufügen, erhalten Sie ein komplizierteres und interessanteres Modell (kein Baum mehr.)

Details finden Sie in diesem Beitrag. In diesem Link habe ich abgeleitet, warum das Hinzufügen von zwei linearen Modellen nicht interessant ist. Und ich zeige den Effekt der Steigerung der Iteration von Entscheidungsstümpfen durch Iteration.

Wie arbeitet der lineare Basislerner beim Boosten? Und wie funktioniert es in der xgboost-Bibliothek?

Beachten Sie, dass der Entscheidungsbaum / Stumpf kein "lineares Modell" ist, das der logistischen Regression ähnelt.

Siehe diesen Beitrag für Details

Ist ein Entscheidungsstumpf ein lineares Modell?

Haitao Du
quelle