XGBoost La Guía Definitiva (Parte 1)

XGBoost La Guía Definitiva (Parte 1)

Foto de Sam Battaglieri en Unsplash

XGBoost (abreviatura de eXtreme Gradient Boosting) es una biblioteca de código abierto que proporciona una implementación optimizada y escalable de árboles de decisión mejorados por gradiente. Incorpora diversas técnicas de optimización de software y hardware que le permiten trabajar con grandes cantidades de datos.

Originalmente desarrollado como un proyecto de investigación por Tianqi Chen y Carlos Guestrin en 2016 [1], XGBoost se ha convertido en la solución preferida para resolver tareas de aprendizaje supervisado en datos estructurados (tabulares). Ofrece resultados de última generación en muchas tareas estándar de regresión y clasificación, y muchos ganadores de competencias de Kaggle han utilizado XGBoost como parte de sus soluciones ganadoras.

Aunque se ha logrado un progreso significativo utilizando redes neuronales profundas para datos tabulares, estas aún son superadas por XGBoost y otros modelos basados en árboles en muchos puntos de referencia estándar [2, 3]. Además, XGBoost requiere mucho menos ajuste que los modelos profundos.

Las principales innovaciones de XGBoost en relación con otros algoritmos de refuerzo de gradiente incluyen:

  1. Regularización inteligente de los árboles de decisión.
  2. Utilizar una aproximación de segundo orden para optimizar el objetivo (reforzamiento de Newton).
  3. Un procedimiento de boceto de cuantiles ponderado para un cálculo eficiente.
  4. Un algoritmo de aprendizaje de árbol novedoso para manejar datos dispersos.
  5. Soporte para procesamiento paralelo y distribuido de los datos.
  6. Estructura de bloque consciente de la caché para el aprendizaje de árboles fuera de la memoria principal.

En esta serie de artículos cubriremos XGBoost en profundidad, incluidos los detalles matemáticos del algoritmo, la implementación del algoritmo en Python desde cero, un resumen de la biblioteca XGBoost y cómo utilizarla en la práctica.

En este primer artículo de la serie, vamos a derivar el algoritmo XGBoost paso a paso, proporcionar una implementación del algoritmo en seudocódigo y luego ilustrar su funcionamiento en un conjunto de datos de prueba.

La descripción del algoritmo dada en este artículo se basa en el artículo original de XGBoost [1] y…