61 votos

Explicación de min_child_weight en el algoritmo xgboost

El definición del parámetro min_child_weight en xgboost se da como el:

suma mínima de peso de instancia (arpillera) necesaria en un niño. Si el paso de paso de partición del árbol resulta en un nodo hoja con la suma de peso de instancia peso de instancia menor que min_child_weight, entonces el proceso de construcción renunciará a renunciará a seguir partiendo. En el modo de regresión lineal, esto simplemente corresponde al número mínimo de instancias necesarias para estar en cada nodo. Cuanto mayor sea, más conservador será el algoritmo.

He leído bastantes cosas sobre xgboost incluyendo el papel original (véase la fórmula 8 y la que sigue a la ecuación 9), esta pregunta y la mayoría de las cosas que tienen que ver con xgboost que aparecen en las primeras páginas de una búsqueda en google. ;)

Básicamente, sigo sin entender por qué imponemos una restricción a la suma de la arpillera. Mi único pensamiento en el minuto del documento original es que se relaciona con la sección de boceto cuantil ponderado (y la reformulación como de la ecuación 3 pérdida cuadrada ponderada) que tiene $h_i$ como el "peso" de cada instancia.

Otra pregunta se refiere a por qué es simplemente el número de instancias en modo de regresión lineal. ¿Supongo que esto está relacionado con la segunda derivada de la ecuación de la suma de los cuadrados?

107voto

Jafin Puntos 1401

Para una regresión, la pérdida de cada punto en un nodo es

$\frac{1}{2}(y_i - \hat{y_i})^2$

La segunda derivada de esta expresión con respecto a $\hat{y_i}$ es $1$ . Así que cuando sumas la segunda derivada sobre todos los puntos del nodo, obtienes el número de puntos del nodo. Aquí, min_child_weight significa algo así como "dejar de intentar dividir una vez que el tamaño de la muestra en un nodo es inferior a un umbral determinado".

Para una regresión logística binaria, la hessiana para cada punto de un nodo va a contener términos como

$\sigma(\hat{y_i})(1 - \sigma(\hat{y_i}))$

donde $\sigma$ es la función sigmoidea. Digamos que estás en un nodo puro (por ejemplo, todos los ejemplos de entrenamiento en el nodo son 1's). Entonces todos los $\hat{y_i}$ serán probablemente grandes números positivos, por lo que todos los $\sigma(\hat{y_i})$ estarán cerca de 1, por lo que todos los términos hessianos estarán cerca de 0. Una lógica similar se mantiene si todos los ejemplos de entrenamiento en el nodo son 0. Aquí, min_child_weight significa algo así como "deja de intentar dividir una vez que alcanzas un cierto grado de pureza en un nodo y tu modelo puede ajustarse a él".

El hessiano es una cosa sana para usar para la regularización y limitar la profundidad del árbol. Para la regresión, es fácil ver cómo se puede sobreajustar si siempre se está dividiendo a los nodos con, digamos, sólo 1 observación. Del mismo modo, para la clasificación, es fácil ver cómo usted podría overfit si usted insiste en dividir hasta que cada nodo es puro.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X