¿Qué es el algoritmo XGBoost?

XGBoost o Extreme Gradient Boost es un algoritmo de aprendizaje automático que se utiliza para la implementación de árboles de decisión de aumento de gradiente. ¿Por qué árboles de decisión? Cuando hablamos de datos no estructurados como las imágenes, datos de texto no estructurados, etc., los modelos ANN (red neuronal artificial) parecen residir en la parte superior cuando tratamos de predecir. Mientras que cuando hablamos de datos estructurados / semiestructurados, los árboles de decisión son actualmente los mejores. Básicamente, XGBoost fue diseñado para mejorar en gran medida la velocidad y el rendimiento de los modelos de aprendizaje automático y sirvió muy bien al propósito.

Funcionamiento del algoritmo XGBoost

El XGBoost tiene un algoritmo de aprendizaje en árbol, así como el aprendizaje del modelo lineal, y debido a eso, es capaz de hacer cálculos paralelos en la única máquina.

Esto hace que el algoritmo XGBoost sea 10 veces más rápido que cualquiera de los algoritmos de aumento de gradiente existentes.

El XGBoost y los GBM (es decir, máquinas de aumento de gradiente) utilizan métodos de árbol mediante el uso de la arquitectura de descenso de gradiente.

El área donde XGBoost deja atrás a los otros GBM es el área de optimización del sistema y mejoras sobre los algoritmos.

Veamos esos en detalle:

Optimización del sistema:

1. Poda de árboles: el algoritmo XGBoost utiliza el enfoque de profundidad primero, a diferencia del criterio de detención para la división de árboles utilizado por GBMS, que es de naturaleza codiciosa y también depende del criterio de pérdida negativa. En cambio, XGBoost utiliza la función / parámetro de profundidad máxima y, por lo tanto, poda el árbol en una dirección hacia atrás.

2. Paralelización: el proceso de construcción secuencial de árboles se realiza mediante la implementación en paralelo en el algoritmo XGBoost. Esto es posible debido a los bucles externos e internos que son intercambiables. El bucle externo enumera los nodos hoja de un árbol, mientras que el bucle interno calculará las características. Además, para que se inicie el bucle externo, se debe completar el bucle interno. Este proceso de conmutación mejora el rendimiento del algoritmo.

3. Optimización del hardware: la optimización del hardware también se consideró durante el diseño del algoritmo XGBoost. Los buffers internos se asignan a cada uno de los hilos para almacenar las estadísticas de gradiente.

Mejoras algorítmicas:

  • Conciencia de la dispersión: se sabe que XGBoost maneja todos los diferentes tipos de patrones de dispersión de manera muy eficiente. Este algoritmo aprende el valor perdido del nido al ver la pérdida de entrenamiento.
  • Regularización: para evitar el sobreajuste, corrige modelos más complejos implementando tanto LASSO (también llamado L1) como la regularización Ridge (también llamada L2).
  • Validación cruzada: el algoritmo XGBoost tiene características de validación cruzada incorporadas que se implementan en cada iteración en la creación del modelo. Esto evita la necesidad de calcular el número de iteraciones de refuerzo necesarias.
  • Boceto cuantil ponderado distribuido: el algoritmo XGBoost utiliza el boceto cuantil ponderado distribuido para obtener el número óptimo de puntos divididos entre los conjuntos de datos ponderados

Características de XGBoost

Aunque XGBoost fue diseñado para mejorar en gran medida la velocidad y el rendimiento de los modelos de aprendizaje automático, también ofrece una buena cantidad de funciones avanzadas.

A) Características del modelo

XGBoost admite las características como la de un juego de ciencia regularización de aprendizaje y la implementación del lenguaje R. Los principales métodos de aumento de gradiente que son compatibles son:

  • Aumento de gradiente estocástico : la columna, la fila y la columna por niveles divididos se pueden submuestrear.
  • Aumento de gradiente
  • Aumento de gradiente regularizado : el XGBoost corrige modelos más complejos implementando tanto LASSO (también llamado L1) como la regularización de Ridge (también llamada L2).

B) Características del sistema

Las características del sistema incluyen:

1. Computación distribuida : esta característica se utiliza para entrenar modelos muy grandes mediante la implementación de un grupo de máquinas.

2. Paralelización : durante el entrenamiento, todos los núcleos de CPU se utilizan para la paralelización de la construcción del árbol.

3. Optimización de caché : los algoritmos y las estructuras de datos se almacenan en caché para aprovechar al máximo el hardware.

4. Fuera de la informática central : para los conjuntos de datos que no caben en la memoria, el XGBoost implica la informática central.

C) Características del algoritmo

Uno de los principales objetivos del algoritmo XGBoost era hacer el mejor uso de todos los recursos disponibles. Algunas de las principales características algorítmicas de XGBoost son:

  • Estructura de bloque : esta característica se utiliza para admitir la construcción de árboles en paralelo.
  • Sparse Aware : cuando faltan los valores en el conjunto de datos, esta función se encargará automáticamente de ello.
  • Capacitación continua : cuando el modelo está listo con los nuevos datos, se puede aumentar aún más el uso de esta función.

¿Por qué usar XGBoost?

El propósito principal que cumple XGBoost son:

  • Velocidad de ejecución
  • Modelo de rendimiento

Discutamos los dos.

1. Velocidad de ejecución

Cuando comparamos XGBoost con otros algoritmos de aumento de gradiente, XGBoost resulta ser realmente rápido, aproximadamente 10 veces más rápido que otras implementaciones.

Szilard Pafka realizó algunos experimentos dirigidos a evaluar la velocidad de ejecución de diferentes algoritmos de implementación forestal aleatorios. A continuación se muestra una instantánea de los resultados del experimento:

Resultó que XGBoost fue el más rápido. Más lectura se puede encontrar aquí

2. Rendimiento del modelo

Cuando hablamos de datos no estructurados como las imágenes, datos de texto no estructurados, etc., los modelos ANN (red neuronal artificial) parecen residir en la parte superior cuando tratamos de predecir. Si bien cuando hablamos de datos estructurados / semiestructurados, los árboles de decisión son actualmente los mejores y, cuando se implementan utilizando XGBoost, ningún otro algoritmo de impulso puede superar esto a partir de ahora.

El algoritmo utilizado por XGboost

El algoritmo XGBoost utiliza el algoritmo del árbol de decisión que aumenta el gradiente.

El método de aumento de gradiente crea nuevos modelos que hacen la tarea de predecir los errores y los residuos de todos los modelos anteriores, que luego, a su vez, se suman y luego se realiza la predicción final.

Conclusión: Algoritmo XGBoost

En este algoritmo XGBoost, hemos aprendido sobre el algoritmo XGBoost que se utiliza para el aprendizaje automático. Luego vimos el funcionamiento de este algoritmo, sus características principales y por qué es una opción perfecta para implementar árboles de decisión que aumentan el gradiente.

Artículos recomendados

Esta ha sido una guía para el algoritmo XGBoost. Aquí discutimos su concepto, características, uso para aprendizaje automático, funcionamiento de un algoritmo en XGBoost. También puede consultar los siguientes artículos para obtener más información:

  1. PNL en Python
  2. Algoritmo de trazado de rayos
  3. Algoritmo de firma digital
  4. Preguntas de entrevista de algoritmo
  5. Criptografía de firma digital

Categoría: