Benötigen Sie Hilfe beim Verständnis des ungefähren Split-Points-Vorschlags von xgboost

12

Hintergrund:

in xgboost der Iteration versucht , einen Baum zu passen f t über alle n Beispiele , die die folgende objektiv minimieren:tftn

i=1n[gift(xi)+12hift2(xi)]

wobei sind erste Ordnung und zweite Ordnung Derivate über unsere frühere beste Schätzung y (von Iteration t - 1 ):gi,hiy^t1

  • gi=dy^l(yi,y^)
  • hi=dy^2l(yi,y^)

und ist unsere Verlustfunktion.l


Die Frage (endlich):

Wenn sie und ein bestimmtes Merkmal k in einem bestimmten Split berücksichtigen , verwenden sie die folgende Heuristik, um nur einige Split-Kandidaten zu bewerten: Sie sortieren alle Beispiele nach ihrem x k , gehen über die sortierte Liste und summieren ihre zweite Ableitung h i . Sie betrachten einen geteilten Kandidaten nur dann, wenn sich die Summe um mehr als ϵ ändert . Warum das???ftkxkhiϵ

Die Erklärung, die sie geben, entgeht mir:

Sie behaupten, wir könnten die vorherige Gleichung folgendermaßen umschreiben:

i=1n12hi[ft(xi)gi/hi]2+constant

und ich folge der Algebra nicht - können Sie zeigen, warum sie gleich ist?

Und dann behaupten sie, dass "dies genau der gewichtete quadratische Verlust mit den Bezeichnungen und Gewichten h i ist " - eine Aussage, der ich zustimme, aber ich verstehe nicht, wie sie sich auf den von ihnen verwendeten Split-Candidate-Algorithmus bezieht. ..gi/hihi

Danke und Entschuldigung, wenn dies für dieses Forum zu lang ist.

ihadanny
quelle

Antworten:

8

Ich werde nicht auf Details eingehen, aber das Folgende soll Ihnen helfen, die Idee zu verstehen.

Sie verwenden Quantile (Wikipedia) , um zu bestimmen, wo geteilt werden soll. Wenn Sie 100 mögliche Teilungspunkte haben, (sortiert), können Sie die 10- Quantil-Teilungspunkte { x 10 , x 20 , , x 90 } ausprobieren und haben bereits eine gute Annäherung. Dies ist, was der Parameter ϵ tut. Sie betrachten einen Split - Punkt , wenn die Spaltung hat ~ ε N mehr Punkte unter ihm als dem letzten Splitpunkt. Wenn ϵ = 0,01{x1,,x100}10{x10,x20,,x90}ϵϵNϵ=0.01Sie erhalten Teilungspunkte, die größer als { 1 % , 2 % , . . . , 99 % } der anderen Punkte. Sie berücksichtigen keine neue Aufteilung, wenn "die Summe mehr als ϵ ändert ", aber wenn die Anzahl der Punkte unter dem aktuellen Punkt um ϵ größer ist als der letzte.100{1%,2%,...,99%}ϵϵ

Wenn Sie viele fortlaufende Punkte haben, die bereits gut klassifiziert sind, ist es möglicherweise sinnlos, zwischen ihnen aufzuteilen. Sie möchten die Teile Ihres Datensatzes aufteilen, die sehr falsch und schwer zu erlernen sind. Dazu verwenden sie gewichtete Quantile. Hier spielen die Gewichte eine Rolle. Das erste Quantil ist nicht der erste Punkt, der größer als 10 % der Punkte ist, sondern der erste Punkt, der größer als 10 % der Gewichte ist.1010%10%

Zwinkert
quelle
Ich habe mich angemeldet, um Ihnen eine Abstimmung zu geben. Vielen Dank für die leicht verständliche Erklärung.
Pakpoom Tiwakornkit
3

Fügen Sie einfach den algebraischen Teil zu @Winks hinzu. Antwort:

Das Vorzeichen der zweiten Gleichung sollte umgekehrt sein, wie in:

ich=1n12hich[ft(xich)- -(- -Gich/.hich)]]2+cÖnsteinnt=ich=1n12hich[ft2(xich)+2ft(xich)Gichhich+(Gich/.hich)2]]=ich=1n[Gichft(xich)+12hichft2(xich)+Gich22hich]]

Gichhichft

- -Gich/.hichhich

Dank geht an Yaron und Avi von meinem Team, die mir das erklärt haben.

ihadanny
quelle
0

Und dann behaupten sie, dass "dies genau der gewichtete quadratische Verlust mit den Bezeichnungen gi / higi / hi und gewichtet hihi ist" - eine Aussage, der ich zustimme, aber ich verstehe nicht, wie sie sich auf den von ihnen verwendeten Split-Candidate-Algorithmus bezieht. .

  1. wtthw=gi/hi(ft(gi/hi))2

  2. wavg(gi)/constsigma(gi)/sigma(hi)whigiwhi

hi

xy.Z.
quelle