Cómo funciona el algoritmo XGBoost

XGBoost es un método de aprendizaje automático supervisado para clasificación y regresión y se utiliza en la herramienta Entrenar con AutoML. XGBoost es la abreviatura de las palabras inglesas "extreme gradient boosting" (refuerzo de gradientes extremo). Este método se basa en árboles de decisión y supone una mejora sobre otros métodos, como el bosque aleatorio y refuerzo de gradientes. Funciona bien con datasets grandes y complejos al utilizar varios métodos de optimización.

Para ajustar un dataset de entrenamiento utilizando XGBoost, se realiza una predicción inicial. Los residuales se calculan en función del valor predicho y de los valores observados. Se crea un árbol de decisión con los residuales utilizando una puntuación de similitud de los residuales. Se calcula la similitud de los datos de una hoja, así como la ganancia de similitud de la división posterior. Se comparan las ganancias para determinar una entidad y un umbral para un nodo. El valor de salida de cada hoja también se calcula mediante los residuales. Para la clasificación, los valores se calculan generalmente utilizando el registro de momios y probabilidades. La salida del árbol se convierte en el nuevo residual para el dataset, que se utiliza para construir otro árbol. Este proceso se repite hasta que los residuales dejan de reducirse, o bien el número de veces especificado. Cada árbol subsiguiente aprende a partir de los árboles anteriores y no tiene asignado el mismo peso, a diferencia de cómo funciona Bosque aleatorio.

Para usar este modelo para la predicción, la salida de cada árbol multiplicado por una tasa de aprendizaje se suma a la predicción inicial para llegar a un valor final o una clasificación.

XGBoost utiliza los siguientes parámetros y métodos para optimizar el algoritmo y proporcionar mejores resultados y un mayor rendimiento:

  • Regularización: se utiliza un parámetro regularización (lambda) al calcular las puntuaciones de similitud para reducir la sensibilidad a los datos individuales y evitar el exceso de ajuste.
  • Corte: se selecciona un parámetro de complejidad de árboles (gamma) para comparar las ganancias. Se poda la rama en la que el aumento es menor que el valor gamma. Evita el exceso de ajuste al cortar las ramas innecesarias y reducir la profundidad de los árboles.
  • Boceto de cuantil ponderado: en lugar de evaluar cada valor posible como umbral para dividir los datos, solo se utilizan cuantiles ponderados. La selección de cuantiles se realiza mediante un algoritmo de boceto que estima una distribución en varios sistemas a través de una red.
  • Aprendizaje paralelo: este método divide los datos en bloques que se pueden usar en paralelo para crear árboles o para otros cómputos.
  • Búsqueda de divisiones sensible a la escasez: XGBoost gestiona la escasez de los datos probando ambas direcciones de una división y buscando una dirección predeterminada mediante el cálculo de la ganancia.
  • Acceso sensible al caché: este método usa la memoria caché del sistema para calcular las puntuaciones de similitud y los valores de salida. La memoria caché es una memoria que presenta un acceso más rápido en comparación con la memoria principal y mejora el rendimiento general del modelo.
  • Bloques para cómputo fuera de núcleo: este método funciona con datasets grandes que no caben en la caché ni la memoria principal y que se deben almacenar en discos duros. El dataset se divide en bloques y se comprime. Descomprimir los datos en la memoria principal es más rápido que leerlos del disco duro. Otra técnica denominada fragmentación se utiliza si se hace necesario repartir los datos entre varios discos duros.

Recursos adicionales

Chen Tianqi y Guestrin Carlos. 2016. XGBoost: A scalable tree boosting system. En Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 785–794.

Documentación de XGBoost


En este tema
  1. Recursos adicionales