XGBoost La Guía Definitiva (Parte 2)
XGBoost Guía Definitiva (Parte 2)
Implementación del algoritmo XGBoost en Python desde cero
En el artículo anterior discutimos el algoritmo XGBoost y mostramos su implementación en seudocódigo. En este artículo vamos a implementar el algoritmo en Python desde cero.
El código proporcionado es una implementación concisa y liviana del algoritmo XGBoost (con solo alrededor de 300 líneas de código), destinado a demostrar su funcionalidad principal. Como tal, no está optimizado para velocidad o uso de memoria, y no incluye el espectro completo de opciones proporcionadas por la biblioteca XGBoost (consultar https://xgboost.readthedocs.io/ para obtener más detalles sobre las características de la biblioteca). Más específicamente:
- El código está escrito en Python puro, mientras que el núcleo de la biblioteca XGBoost está escrito en C++ (sus clases de Python son solo envoltorios delgados sobre la implementación de C++).
- No incluye varias optimizaciones que permiten a XGBoost manejar grandes cantidades de datos, como el esbozo ponderado de cuantiles, el aprendizaje de árboles fuera de memoria y el procesamiento paralelo y distribuido de los datos. Estas optimizaciones se discutirán con más detalle en el próximo artículo de la serie.
- La implementación actual solo admite tareas de regresión y clasificación binaria, mientras que la biblioteca XGBoost también admite clasificación multiclase y problemas de clasificación por ranking.
- Nuestra implementación solo admite un pequeño subconjunto de los hiperparámetros que existen en la biblioteca XGBoost. Específicamente, admite los siguientes hiperparámetros:
- n_estimators (valor predeterminado = 100): el número de árboles de regresión en el conjunto (que también es el número de iteraciones de refuerzo).
- max_depth (valor predeterminado = 6): la profundidad máxima (número de niveles) de cada árbol.
- learning_rate (valor predeterminado = 0.3): el tamaño del paso de reducción aplicado a los árboles.
- reg_lambda (valor predeterminado = 1): término de regularización L2 aplicado a los pesos de las hojas.
- gamma (valor predeterminado = 0): reducción mínima de pérdida requerida para dividir un nodo dado.
Para mantener la consistencia, he mantenido los mismos nombres y valores predeterminados de estos hiperparámetros tal como se definen en la biblioteca XGBoost.
- Las complejidades de la implementación de la resolución de entidades
- La IA generativa impulsa una nueva era en la industria automotriz, desde el diseño y la ingeniería hasta la producción y las ventas
- Visual Effects Multiplier Wylie Co. apuesta todo por el rendimiento de GPU para obtener ganancias de 24 veces
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Superando los límites del análisis de datos con SQL en S4 HANA y Domo Una perspectiva de Aprendizaje Automático
- Top 50 Herramientas de Escritura de IA para Probar (Agosto 2023)
- Presentando el plan de estudios del Bootcamp ODSC West comienza ahora
- Construye aplicaciones de IA generativa listas para producción para la búsqueda empresarial utilizando tuberías de Haystack y Amazon SageMaker JumpStart con LLMs
- Investigadores exploran las mejores prácticas para hablar con los niños sobre la privacidad en línea
- Los hackers exploran formas de abusar de la IA en una importante prueba de seguridad
- 15 Mejores Inicios de ChatGPT para la Gestión del Tiempo