XGBoost- ¿Qué es?

XGBoost es un algoritmo de aprendizaje automático basado en un árbol de decisiones y utiliza un marco de potenciación de gradientes. Las redes neuronales artificiales superan en su mayoría a otros marcos o algoritmos cuando predicen problemas con el texto, las imágenes y otros datos no estructurados. Las cosas son muy diferentes cuando se trata de datos tabulares/estructurados medianos o pequeños. ¿Por qué? Porque los algoritmos basados en árboles de decisión son posiblemente la mejor solución.

El algoritmo XGBoost fue el resultado de un proyecto de investigación organizado en la Universidad de Washington. Carlos Guestrin y Tianqi Chen presentaron su trabajo en la conferencia SIGKDD de 2016. Desde entonces, XGBoost se convirtió en un renombrado algoritmo que revolucionó el panorama del aprendizaje de las máquinas.

Desde su introducción, este algoritmo recibió toneladas de créditos, incluyendo varias competiciones de Kaggle. También recibió el reconocimiento por su influencia en varias aplicaciones de la industria de vanguardia. Como consecuencia, un grupo masivo de científicos de datos está contribuyendo a diferentes proyectos de código abierto relacionados con XGBoost. GitHub tiene más de trescientos colaboradores, y treinta y seiscientos se han comprometido hasta ahora. Aprende cómo este algoritmo se destaca de los demás.

Cómo destaca XGBoost

Una amplia gama de aplicaciones

XGBoost permite utilizar una amplia gama de aplicaciones para resolver problemas de predicción, clasificación y regresión definidos por el usuario.

Fácilmente portátil

Funciona sin problemas en OSX, Linux y Windows.


Variedad de idiomas

XGBoost soporta la mayoría de los lenguajes de programación, incluyendo, Julia, Scala, Java, R, Python, C++.

Integración con la nube

El algoritmo de aprendizaje de la máquina XGBoost soporta grupos de hilos, azules y AWS. También funciona increíblemente bien con otros Spark, Flink, y varios ecosistemas.

Construyendo una intuición XG Boost

Una de las razones por las que los árboles de decisión son tan populares es que visualizarlos es bastante sencillo en su forma más básica. Sus algoritmos también son fáciles de interpretar, pero crear intuición para la próxima generación de algoritmos (basados en árboles) puede ser un poco complicado. He aquí una analogía para comprender los algoritmos basados en árboles y su evolución.

Piensa en ti como un gerente de contratación, hablando con varios candidatos altamente calificados. Cada paso de la evolución del algoritmo basado en el árbol es como una parte del proceso de entrevista.

Árbol de decisiones

Cada gerente de contratación sigue un conjunto de criterios, incluyendo la experiencia, la educación y el desempeño en las entrevistas. Sería justo comparar un árbol de decisiones con un gerente de contratación que cuestiona a los candidatos en base a sus criterios.

Embolsado

Múltiples personas están a cargo de las entrevistas ahora, y todos en el panel tienen un voto. La agregación o empaquetamiento de Bootstrap implica amalgamar los aportes de cada entrevistador para la decisión concluyente con la ayuda de un proceso de votación imparcial.

Bosque al azar

El Bosque Aleatorio es un algoritmo de empaquetamiento que selecciona al azar un subcomponente de características. En otras palabras, cada entrevistador probará al candidato basándose en las calificaciones elegidas al azar (por ejemplo, entrevistas técnicas para probar las habilidades de programación).

Impulso

La potenciación es un procedimiento alternativo en el que cada entrevistador cambia los criterios de evaluación en función de la información recibida de los entrevistadores anteriores. Es un proceso de entrevista muy eficiente ya que ayuda a desplegar procedimientos de evaluación más poderosos.

Impulso de Gradiente

El proceso de aumento del gradiente minimiza los errores a través del algoritmo de descenso del gradiente. Por ejemplo, las empresas de consultoría estratégica utilizan las entrevistas de casos para eliminar a los candidatos que no están tan calificados como los demás.

XGBoost

XGBoosting es una versión significativamente más eficiente de la mejora de gradientes, de ahí su nombre: Extreme Gradient Boosting. Es una combinación ideal de técnicas de optimización de hardware y software para lograr resultados superiores utilizando un mínimo de recursos de computación en períodos cortos.


¿Cuál es el secreto detrás del excelente rendimiento de XGBoost?


Las máquinas de aumento de gradiente y XGBoost son métodos de árbol de conjunto. Utilizan la arquitectura de descenso de gradiente para aplicar el principio de impulsar a los estudiantes pobres (CARTs.) Extreme Gradient Boosts mejora de manera significativa el marco GBM mediante la implementación de mejoras algorítmicas y la optimización de los sistemas.

Optimización del sistema

Paralelización

XGBoost utiliza una implementación paralela para arrancar el proceso de construcción del árbol secuencial. Esto es posible debido a la característica intercambiable de los bucles utilizados para crear la base de aprendizaje. El bucle interior cuenta las características mientras que el bucle exterior detalla los nodos de las hojas de un árbol. El anidamiento del bucle restringe la paralelización porque es imposible comenzar el bucle exterior sin terminar el bucle interior.

Así que, para lograr un mejor tiempo de ejecución, el orden de los bucles se intercambia con la ayuda de la inicialización con un escaneo global de la clasificación e instancias utilizando hilos paralelos. El interruptor mejorará significativamente el rendimiento algorítmico mediante la compensación de los gastos generales de paralelización.

Poda de árboles

XGBoost utiliza ‘max_depth’ e ignora el criterio primero para podar los árboles hacia atrás. El enfoque es excelente para aumentar el rendimiento de los cálculos.

Optimización del hardware

El algoritmo de optimización de hardware utiliza los recursos de hardware de manera eficiente. Es posible mediante la asignación de buffers internos en cada hilo para almacenar estadísticas de gradientes. Otras mejoras, como la computación “fuera del núcleo”, utilizan el espacio del disco y manejan marcos de datos que no caben en la memoria.

Mejoras en los algoritmos

Regularización

Ayuda a penalizar a los modelos complejos con la ayuda de Ridge y LASSO para evitar el exceso de equipamiento.

Validación cruzada

El algoritmo de aprendizaje de la máquina XGBoost tiene un método de validación cruzada implementado en cada iteración. Elimina la necesidad de programar elaboradamente esta búsqueda y especificar la cantidad precisa de iteraciones de refuerzo necesarias por cada ejecución.

Conciencia de la escasez

XGBoost añade características de dispersión al comprender automáticamente el valor esencial y maneja varios patrones de dispersión con extraordinaria eficiencia.

Boceto de la cantidad ponderada

El impulso de Gradiente Extremo implementa el algoritmo de boceto distribuido para encontrar las pintas divididas ideales en conjuntos de datos ponderados.

XGBoost podría ser el futuro del aprendizaje automático

Los científicos de los datos deben probar cada algoritmo para identificar la mejor opción. Además, elegir el algoritmo correcto, aunque sea excelente, no es suficiente. La selección de la configuración correcta para un conjunto de datos en particular también es crucial. Es más, hay que considerar varios elementos para elegir el mejor algoritmo. Preste atención a cosas como la implementación, la explicabilidad y la complejidad computacional para determinar el algoritmo que más le convenga.

Por último, el aprendizaje de la máquina es un vasto avance, y encontrarás toneladas de alternativas a Extreme Gradient Boost. Cat Boost y Light GBM son algunas alternativas recientes que ofrecen resultados impresionantes. Dicho esto, XGBoost reina supremo en términos de explicabilidad, pragmatismo, flexibilidad, rendimiento y muchas otras cosas. Espere que este algoritmo de aprendizaje automático se mantenga en la cima hasta que un digno retador llegue y sacuda las cosas.