Necesita ayuda para comprender la propuesta aproximada de puntos divididos de xgboost

12

antecedentes:

En xgboost, la iteración intenta ajustar un árbol sobre todos los ejemplos, lo que minimiza el siguiente objetivo:tftn

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

donde son primer orden y de segundo orden sobre nuestra mejor estimación anterior (de la iteración ):gi,hiy^t1

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

y es nuestra función de pérdida.l


La pregunta (finalmente):

Cuando y consideran una característica específica en una división específica, usan la siguiente heurística para evaluar solo algunos candidatos divididos: clasifican todos los ejemplos por su , pasan la lista ordenada y suman su segunda derivada . Consideran un candidato dividido solo cuando la suma cambia más de . ¿¿¿Porqué es eso???ftkxkhiϵ

La explicación que me dan se me escapa:

Afirman que podemos reescribir la ecuación anterior así:

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

y no sigo el álgebra, ¿puedes mostrar por qué es igual?

Y luego afirman que "esto es exactamente una pérdida cuadrática ponderada con etiquetas y pesos ", una declaración con la que estoy de acuerdo, pero no entiendo cómo se relaciona con el algoritmo de candidato dividido que están usando ...gi/hihi

Gracias y lo siento si es demasiado largo para este foro.

ihadanny
fuente

Respuestas:

8

No entraré en detalles, pero lo siguiente debería ayudarlo a comprender la idea.

Usan cuantiles (Wikipedia) para determinar dónde dividir. Si tiene 100 puntos de división posibles, (ordenados), puede probar los puntos de división de cuantillas y ya tiene una buena aproximación. Esto es lo que está haciendo el parámetro . Consideran un punto de división cuando la división tiene más puntos debajo que el último punto de división. Si , terminará con puntos divididos, siendo mayor que de los otros puntos. No consideran una nueva división cuando "la suma cambia más de{x1,,x100}10{x10,x20,,x90}ϵϵNϵ=0.01100{1%,2%,...,99%}ϵ ", pero cuando el número de puntos debajo del punto actual es que el anterior.ϵ

Ahora, si tiene muchos puntos continuos muy bien clasificados, podría ser inútil dividirlos. Desea dividir las partes de su conjunto de datos que están muy mal, las que son difíciles de aprender. Para hacerlo, usan cuantiles ponderados. Aquí es donde los pesos juegan un papel. El primer -cuantil no será el primer punto que sea mayor que el de los puntos, sino el primer punto que sea mayor que el de los pesos.1010%10%

Guiños
fuente
Me conecté solo para darle un voto positivo. Gracias por una explicación fácil de entender.
Pakpoom Tiwakornkit
3

Simplemente agregando la parte algebraica a la respuesta @Winks:

La segunda ecuación debe tener su signo invertido, como en:

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]

El último término es de hecho constante: recuerde que y están determinados por la iteración anterior, por lo que son constantes cuando se intenta establecer .gihift

Entonces, ahora podemos afirmar "esto es exactamente una pérdida cuadrática ponderada con las etiquetas y pesos "gi/hihi

El crédito va para Yaron y Avi de mi equipo por explicarme esto.

ihadanny
fuente
0

Y luego afirman que "esto es exactamente una pérdida cuadrática ponderada con las etiquetas gi / higi / hi y weights hihi", una declaración con la que estoy de acuerdo, pero no entiendo cómo se relaciona con el algoritmo de candidato dividido que están utilizando. .

  1. Si solo hay una muestra, y está optimizando el en la iteración , es fácil ver que el valor sería , explicandowtthw=gi/hi(ft(gi/hi))2

  2. Ahora tiene un conjunto de datos completo. En un caso donde la función de pérdida tiene una segunda derivada idéntica, la se convertiría en lugar de . Lo escribí de esta manera porque en ese caso, el sería irrelevante para la diferencia de entre las muestras, ya que no hay diferencia. Sin embargo, en realidad, al mantener sin cambios, la fluctúa con la distribución de .wavg(gi)/constsigma(gi)/sigma(hi)whigiwhi

Creo que explica por qué funciona, ya que está ponderado por .hi

xy.Z
fuente