Explicación de min_child_weight en el algoritmo xgboost

23

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

suma mínima de peso de instancia (hessian) necesaria en un niño. Si el paso de partición del árbol da como resultado un nodo hoja con una suma de peso de instancia menor que min_child_weight, entonces el proceso de construcción abandonará la partición adicional. En el modo de regresión lineal, esto simplemente corresponde al número mínimo de instancias necesarias para estar en cada nodo. Cuanto más grande, más conservador será el algoritmo.

He leído bastantes cosas en xgboost, incluido el documento original (consulte la fórmula 8 y la que se encuentra justo después de la ecuación 9), esta pregunta y la mayoría de las cosas relacionadas con xgboost que aparecen en las primeras páginas de una búsqueda en Google. ;)

Básicamente, todavía no estoy contento de por qué estamos imponiendo una restricción a la suma de la arpillera. Mi único pensamiento en este momento del artículo original es que se relaciona con la sección de bosquejo de cuantiles ponderados (y la reformulación a partir de la ecuación 3 pérdida cuadrada ponderada) que tiene como el 'peso' de cada instancia.hyo

Otra pregunta se relaciona con ¿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 suma de cuadrados.

maw501
fuente

Respuestas:

42

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

12(yyo-yyo^)2

yyo^1

Para una regresión logística binaria, el hessian para cada punto en un nodo contendrá términos como

σ(yyo^)(1-σ(yyo^))

σyyo^σ(yyo^)

El Hessian es una cosa sensata para usar para regularizar y limitar la profundidad del árbol. Para la regresión, es fácil ver cómo podría sobreajustar si siempre se divide en nodos con, por ejemplo, solo 1 observación. Del mismo modo, para la clasificación, es fácil ver cómo podría sobreajustar si insiste en dividir hasta que cada nodo sea puro.

hahdawg
fuente
Gracias por la respuesta, no puedo votarlo debido a la baja reputación.
maw501
1
Hola @ maw501: No hay problemas, puedo. Buena respuesta Hahdawg!
Catbuilts
Entonces, en un caso de datos altamente desequilibrados, ¿cuál es su rango propuesto para el min_child_weight?
Mahdi Baghbanzadeh
Cuando se encuentra en un conjunto de datos no balanceado, ¿min_child_weight también debe incluir pesos? ¡Gracias! @hahdawg
HanaKaze