Hai bisogno di aiuto per comprendere la proposta di punti di divisione approssimativi di xgboost


12

sfondo:

in xgboost le tenta iterazione montare un albero f t su tutte le n esempi che minimizza la seguente obiettivo:tftn

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

dove sono primo ordine e derivati secondo ordine oltre la nostra precedente stima migliore y (da iterazione t - 1 ):gi,hiy^t1

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

e è la nostra funzione di perdita.l


La domanda (finalmente):

Quando costruiscono e prendono in considerazione una caratteristica specifica k in una divisione specifica, usano la seguente euristica per valutare solo alcuni candidati alla divisione: Ordinano tutti gli esempi in base alla loro x k , passano sulla lista ordinata e sommano la loro seconda derivata h i . Considerano un candidato diviso solo quando la somma cambia più di ϵ . Perché???ftkxkhiϵ

La spiegazione che mi danno mi sfugge:

Dicono che possiamo riscrivere l'equazione precedente in questo modo:

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

e non riesco a seguire l'algebra: puoi mostrare perché è uguale?

E poi affermano che "questa è esattamente una perdita quadrata ponderata con etichette e pesi h i " - un'affermazione con cui sono d'accordo, ma non capisco come si collega all'algoritmo split candidate che stanno usando. ..gi/hihi

Grazie e scusa se è troppo lungo per questo forum.

Risposte:


8

Non entrerò nei dettagli, ma quanto segue dovrebbe aiutarti a cogliere l'idea.

Usano i quantili (Wikipedia) per determinare dove dividere. Se hai 100 possibili punti di divisione, (ordinati), puoi provare i punti di divisione 10 -quantiles { x 10 , x 20 , , x 90 } e avere già una buona approssimazione. Questo è ciò che sta facendo il parametro ϵ . Considerano un punto di divisione quando la divisione ha ϵ N più punti al di sotto dell'ultimo punto di divisione. Se ϵ = 0,01{x1,,x100}10{x10,x20,,x90}ϵϵNϵ=0.01 finirai con punti di divisione, essendo maggiore di { 1 % , 2100 degli altri punti. Non considerano una nuova divisione quando "la somma cambia più di ϵ " ma quando il numero di punti sotto il punto corrente è maggiore di ϵ rispetto all'ultima.{1%,2%,...,99%}ϵϵ

Ora, se hai molti punti continui che sono già ben classificati, potrebbe essere inutile dividere tra loro. Vuoi dividere le parti del tuo set di dati che sono molto sbagliate, quelle che sono difficili da imparare. Per fare ciò, usano quantili ponderati. Questo è dove i pesi svolgono un ruolo. Il primo -quantile non sarà il primo punto che è maggiore del 10 % dei punti, ma il primo punto che è maggiore del 10 % dei pesi.1010%10%


Ho effettuato l'accesso per darti un voto positivo. Grazie per una spiegazione di facile comprensione.
Pakpoom Tiwakornkit,

3

Basta aggiungere la parte algebrica alla risposta di @Winks:

La seconda equazione dovrebbe avere il segno invertito, come in:

i=1n12hi[ft(xi)(gi/hi)]2+constant=i=1n12hi[ft2(xi)+2ft(xi)gihi+(gi/hi)2]=i=1n[gift(xi)+12hift2(xi)+gi22hi]

The last term is indeed constant: remember that the gi and hi are determined by the previous iteration, so they're constant when trying to set ft.

So, now we can claim "this is exactly weighted squared loss with labels gi/hi and weights hi"

Credit goes to Yaron and Avi from my team for explaining me this.


0

And then they claim that "this is exactly weighted squared loss with labels gi/higi/hi and weights hihi" - a statement I agree with, but I don't understand how does it relate to the split candidate algorithm they are using...

  1. If there is only one sample, and you are optimizing the w at tth iteration, it is easy to see that the value would be w=gi/hi, explaining (ft(gi/hi))2

  2. Now you have an entire data set. In a case where the loss function has a identical second derivative, the w would become avg(gi)/const instead of sigma(gi)/sigma(hi). I wrote it in this way because in that case, the w would be irrelevant to the difference of hi among samples, since there is no difference. However, in reality, when keeping gi unchanged, the w fluctuates with distribution of hi.

I think it explains why it works as it is weighted by hi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.