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.