XGBoost Tree 'ruptura de características iniciales'

Aug 21 2020

Soy bastante nuevo en aprender el algoritmo XGBoost y tenía una pregunta sobre cómo el algoritmo sabe en qué función romper el árbol primero.

Aquí está mi entendimiento (y corríjame si me equivoco):

Cada árbol comienza como una sola hoja y todos los residuos van a esa hoja. Luego calculamos la puntuación de similitud e intentamos dividir entre algunas características de las características. Por ejemplo, digamos que solo tenemos una característica: la altura. Podríamos dividir el residual si su valor x respectivo fuera digamos altura>$180cm$ o altura < $180cm$. Y luego proceda a calcular los puntajes de similitud y la ganancia de las hojas nuevas y continúe por nuestro árbol.

Mi pregunta ahora es decir que teníamos dos o más características como altura, edad, peso, educación, etc. ¿Cómo sabe el algoritmo dónde romper los residuos iniciales? ¿Lo calcula sobre todas las características posibles y encuentra la mejor ganancia? Me imagino que los conjuntos de datos grandes pasan por todas las características, luego lo rompen en algún umbral y la comparación debe llevar mucho tiempo.

¿O comienza en alguna característica aleatoria y avanza hacia abajo como un bosque aleatorio? Sé que hay un parámetro dentro del algoritmo que le permite establecer el porcentaje de características por árbol, así que agregue a mi pregunta una vez que especifiquemos este porcentaje, ¿cómo selecciona las características y, lo que es más importante, una vez que se seleccionan esas características, cómo sabe cuál uno para recoger para romper la hoja inicial de residuos.

Editar: Intenté leer el artículo donde se publicó por primera vez el algoritmo, pero me resultó un poco difícil de conceptualizar y comprender.

Respuestas

1 CarlosMougan Aug 21 2020 at 13:43

Cada árbol comienza como una sola hoja y todos los residuos van a esa hoja. Luego calculamos la puntuación de similitud e intentamos dividir entre algunas características. Por ejemplo, digamos que solo teníamos una característica: la altura. Podríamos dividir el residual si su respectivo valor x fuera digamos altura> 180𝑐𝑚 o altura <180𝑐𝑚. Y luego proceda a calcular los puntajes de similitud y la ganancia de las hojas nuevas y continúe por nuestro árbol

  • Aquí parece que está describiendo solo un árbol de decisiones. Mira este tutorial para entenderlo un poco más

Mi pregunta ahora es decir que teníamos dos o más características como altura, edad, peso, educación, etc. ¿Cómo sabe el algoritmo dónde romper los residuos iniciales? ¿Lo calcula sobre todas las características posibles y encuentra la mejor ganancia? Me imagino que los conjuntos de datos grandes pasan por todas las características, luego lo rompen en algún umbral y la comparación debe llevar mucho tiempo.

  • Una vez más, está hablando del árbol de decisiones y su complejidad, pero sí, para grandes conjuntos de datos es demasiado costoso computacionalmente. Para evitar esto se utilizan varias estrategias, como muestreo, selección de características o cuantificación.

¿O comienza en alguna característica aleatoria y avanza hacia abajo como un bosque aleatorio? Sé que hay un parámetro dentro del algoritmo que le permite establecer el porcentaje de características por árbol, así que agregue a mi pregunta una vez que especifiquemos este porcentaje, ¿cómo selecciona las características y, lo que es más importante, una vez que se seleccionan esas características, cómo sabe cuál uno para recoger para romper la hoja inicial de residuos.

  • El bosque aleatorio realiza una selección aleatoria de características por división del árbol. Los árboles crecen codiciosos, por lo que intenta todas las divisiones posibles y elige la mejor. Si el artículo original fue demasiado difícil, intente seguir este tutorial sobre bosque aleatorio