Die Frage
Ich habe Probleme zu verstehen, wie die Vorhersage im Intervall wenn ich eine binäre Klassifizierung mit Gradient Boosting durchführe.
Angenommen, wir arbeiten an einem binären Klassifizierungsproblem und unsere Zielfunktion ist der logarithmische Verlust , wobei ist die Zielvariable und ist unser aktuelles Modell.
Wenn wir den nächsten schwachen Lernenden so trainieren, dass unser neues Modell , welchen Mechanismus soll H_i \ in [0,1] halten ? Oder, vielleicht eine relevantere Frage, gibt es einen solchen Mechanismus?
Mehr Informationen darüber, was ich tue
Ich versuche mit Hilfe von Regressionsbäumen eine Gradientenanhebung zu implementieren. Um dies zu vermeiden, multipliziere ich mit dem Faktor c \ in [0, c _ {\ text {max}}] , sodass H + c _ {\ text {max}} h nicht unter null oder darüber liegt eins, und ich wähle das c in diesem Bereich, der die Verlustfunktion minimiert.
Dies bringt das folgende Problem mit sich: Nach einigen Runden habe ich einen Punkt, der perfekt klassifiziert ist, und der beste verfügbare Split, um den Klassifikator in Richtung des Farbverlaufs zu verschieben, möchte diesen Punkt über einen Punkt verschieben, womit ich sicher gehe, dass dies nicht passiert Einstellung . Somit wählt jede nächste Iteration den gleichen Split und das gleiche .
Ich versuchte es mit gängigen Regularisierungspraktiken
- Verringerung der Lernrate durch Multiplikation von mit . Dies verzögert nur das Problem.
- Durch Subsampling des Feature-Space lassen sich einige Punkte sehr einfach klassifizieren. Sie markieren fast jedes Kästchen im Feld "Ist das ein Positiv?". Form, und fast jeder "gute Split" zeigt dieses Verhalten.
Ich denke, dies ist kein Problem der Parameter, und es sollte eine vernünftigere Möglichkeit geben, dies zu beheben. Ich lehne die Möglichkeit, dass meine Implementierung fehlerhaft ist, nicht ab, habe jedoch nichts gefunden, was dieses Problem angeht.
Was wir im Zusammenhang mit dem logistischen Verlust manipulieren, sollte eine Wahrscheinlichkeit sein. Wie können wir dies vermeiden?
Meine Intuition wäre, das Modell, das wir bauen, , in eine Sigmoid-Funktion zu setzen, so dass es an gebunden ist , und ich denke, das würde funktionieren, aber ich möchte wissen, ob es andere Lösungen gibt. Da die Gradientenverstärkung bei Klassifizierungsaufgaben anscheinend erfolgreich eingesetzt wird, sollte eine "richtige" (dh mit Begründung) Lösung vorliegen.
quelle
Antworten:
Daran denke ich gerne in Analogie zu linearen Modellen und deren Erweiterung auf GLMs (generalisierte lineare Modelle).
In einem linearen Modell passen wir eine lineare Funktion an, um unsere Reaktion vorherzusagen
Um auf andere Situationen zu verallgemeinern, führen wir eine Verknüpfungsfunktion ein, die den linearen Teil des Modells auf die Skala der Antwort transformiert (technisch ist dies eine inverse Verknüpfung, aber ich denke, es ist einfacher, sich dies so vorzustellen und den linearen Prädiktor zu transformieren in eine Antwort umwandeln, als die Antwort in einen linearen Prädiktor umzuwandeln.
Das logistische Modell verwendet beispielsweise die Sigmoid- (oder Logit-) Funktion
und die Poisson-Regression verwendet eine Exponentialfunktion
Um eine Analogie zur Gradientenverstärkung zu konstruieren, ersetzen wir den linearen Teil dieser Modelle durch die Summe der verstärkten Bäume. So wird beispielsweise der Gauß-Fall (analog zur linearen Regression) bekannt
wo ist unsere Sequenz von schwachen Lernenden. Der Binomialfall ist analog zur logistischen Regression (wie Sie in Ihrer Antwort festgestellt haben).hi
und Poisson-Boosting ist analog zur Poisson-Regression
Es bleibt die Frage, wie man diese Boost-Modelle einfügt, wenn es um die Link-Funktion geht. Für den Gaußschen Fall, bei dem die Verknüpfung die Identitätsfunktion ist, funktioniert das oft gehörte Mantra, schwache Lernende an die Residuen des aktuellen Arbeitsmodells anzupassen, aber dies verallgemeinert sich nicht wirklich auf die komplizierteren Modelle. Der Trick besteht darin, die Verlustfunktion zu schreiben, die als Funktion des linearen Teils des Modells (dh des ∑ i β i x i) minimiert wird∑iβixi Teils der GLM-Formulierung).
Beispielsweise tritt der Binomialverlust normalerweise als auf
Hier ist der Verlust eine Funktion von , den vorhergesagten Werten im gleichen Maßstab wie die Antwort, und p i ist eine nichtlineare Transformation des linearen Prädiktors L i . Stattdessen können wir dies als Funktion von L i wieder ausdrücken (in diesem Fall auch als log odds bezeichnet).pi pi Li Li
Dann können wir den Gradienten von diesem in Bezug auf und steigern, um diese Größe direkt zu minimieren.L
Erst ganz am Ende, wenn wir Vorhersagen für den Benutzer erstellen möchten, wenden wir die Verknüpfungsfunktion auf die endgültige Sequenz der schwachen Lernenden an, um die Vorhersagen auf den gleichen Maßstab wie die Antwort zu bringen. Während wir das Modell anpassen, arbeiten wir intern die ganze Zeit an der linearen Skala.
quelle
Nach einigen Recherchen scheint sich meine Intuition und Alex R. zu äußern richtig sind.
Dies wurde in der Veröffentlichung Additive logistische Regression vorgeschlagen: eine statistische Betrachtung der Steigerung von LogitBoost (Wikipedia) durch Friedman, Hastie und Tibshirani , um eine Anpassung von AdaBoost (Wikipedia) an den logistischen Verlust zu erstellen .
Wenn es möglich ist, von einer linearen Regression zu einer logistischen Regression überzugehen, indem ein Sigmoid hinzugefügt wird, funktioniert dies auch, um die Regressionsanhebung in eine Klassifikationsanhebung umzuwandeln.
quelle