XGBoost La Guía Definitiva (Parte 2)

XGBoost Guía Definitiva (Parte 2)

Implementación del algoritmo XGBoost en Python desde cero

Imagen de StockSnap en Pixabay

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:

  1. 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++).
  2. 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.
  3. 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.
  4. 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.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Deblur AI de Google Afilado de tus imágenes

En nuestra era digital en constante evolución, donde capturar y compartir momentos a través de la fotografía se ha co...

Inteligencia Artificial

Conoce a los 'Super Usuarios' de la IA Generativa el 70% de la Generación Z utiliza GenAI

La encuesta de Salesforce muestra que la edad y el estado laboral son factores importantes en la adopción de la IA.

Aprendizaje Automático

Esta Herramienta de IA Explica Cómo la IA 'Ve' Imágenes y por qué Puede Equivocarse al Confundir un Astronauta con una Pala.

Es ampliamente reconocido que la inteligencia artificial (IA) ha logrado avances significativos en los últimos años, ...

Inteligencia Artificial

Protección de datos fundamentales para la aceleración de LLM empresarial con Protopia AI

La publicación describe cómo puedes superar los desafíos de retener la propiedad de los datos y preservar la privacid...

Inteligencia Artificial

La modelación en 3D se basa en la inteligencia artificial

La inteligencia artificial puede desbloquear mejoras en velocidad y calidad en gráficos tridimensionales.