Saltar al contenido

Lección 6 de 16 · Lectura y práctica

Gradient Boosting: XGBoost, LightGBM y CatBoost

Compara XGBoost, LightGBM y CatBoost con la misma separación, una referencia y un registro de configuración, sin declarar un ganador universal.

Del concepto a la práctica

Taller de esta lección

Gradient boosting añade modelos pequeños de forma secuencial para corregir errores anteriores. Comparar implementaciones exige fijar etiqueta, partición, métrica y presupuesto; sus nombres no garantizan un ganador universal. Una referencia sencilla revela si la complejidad aporta algo.

Ejemplo resuelto

python
X_train = [[1, 10], [2, 20], [3, 30], [4, 40], [5, 50], [6, 60]]
y_train = [0, 0, 0, 1, 1, 1]
X_valid = [[2, 15], [5, 55]]
y_valid = [0, 1]
from sklearn.dummy import DummyClassifier
from sklearn.metrics import balanced_accuracy_score
ref = DummyClassifier(strategy="most_frequent")
ref.fit(X_train, y_train)
pred = ref.predict(X_valid)
print(balanced_accuracy_score(y_valid, pred))
  1. Define la clase positiva y la fecha de corte.

  2. Congela entrenamiento y validación.

  3. Obtén la métrica de referencia.

  4. Registra para cada implementación configuración, tiempo y puntuación.

Error frecuente: comparar una biblioteca con variables preprocesadas de otra forma. Corrígelo usando el mismo contrato de entrada o documentando la diferencia.

Pruébalo

Para un segundo cálculo manual, usa etiquetas de evaluación [0, 0, 0, 0, 1, 1] y seis predicciones [0, 0, 0, 0, 0, 0]. Calcula recall de cada clase y su media.

Comprueba tu resultado

La referencia predice siempre cero; la balanced accuracy es 0,5 si la matriz contiene aciertos de la clase cero y ningún acierto de la clase uno.

El caso de evaluación aquí contiene pocas observaciones para que puedas reconstruir cada resultado. Una precisión alta en ese fixture no estima el desempeño comercial: antes de tomar una decisión, repite el protocolo con una partición temporal o por cuenta que respete cuándo madura la etiqueta, y muestra la variación entre evaluaciones.

La referencia obtiene recall 1 para la clase cero y 0 para la clase uno; balanced accuracy=(1+0)/2=0,5. La exactitud del segundo cálculo es 4/6, una métrica distinta. Al comparar XGBoost, LightGBM o CatBoost registra también cómo cada versión trata categorías y valores faltantes; no deduzcas equivalencia a partir del nombre del algoritmo.

Conjuntos separados de entrenamiento, validación y prueba final con funciones distintas.
CursaloMapa de práctica
Entrenar sin mirar el examen

El entrenamiento ajusta los parámetros del modelo. La validación ayuda a elegir el enfoque sin utilizar la prueba final. Reserva la prueba para evaluar la decisión terminada y evita que sus resultados vuelvan al ajuste.

Ver la infografía en tamaño completo ↗

Compara sistemas con un protocolo común

En boosting se construye una secuencia de modelos que corrige errores del conjunto previo. XGBoost, LightGBM y CatBoost ofrecen implementaciones distintas con parámetros y tratamiento de datos propios. Que un nombre aparezca en una competencia no significa que sea el mejor para tu tabla o tu presupuesto.

Ejemplo de protocolo: churn ficticio

Usa la definición y fecha de corte de la lección de preparación. Congela entrenamiento, validación y test antes de comparar. No incluyas cancelaciones futuras ni identificadores que memoricen cuentas. Empieza por una referencia como DummyClassifier y una regresión logística antes de buscar una diferencia entre bibliotecas.

DecisiónQué mantener comparable
SeparaciónLas mismas filas y ventana temporal
MétricaLa misma definición y clase positiva
PresupuestoTiempo y número de configuraciones registrados
CategoríasTratamiento descrito y ajustado con entrenamiento
TestReservado hasta terminar las decisiones de validación

Modelo de referencia para la práctica

from sklearn.dummy import DummyClassifier
from sklearn.metrics import balanced_accuracy_score

referencia = DummyClassifier(strategy="most_frequent")
# Usa conjuntos ya preparados y separados, no toda la tabla.
# referencia.fit(X_train, y_train)
# predicciones = referencia.predict(X_valid)
# valor = balanced_accuracy_score(y_valid, predicciones)

El fragmento prepara una referencia; no contiene un benchmark ejecutado. Para las tres bibliotecas, revisa su API instalada antes de copiar parámetros de early stopping. Declara un conjunto de validación separado y documenta dónde se usó. No escojas parámetros mirando el resultado final del test.

Preguntas para elegir con criterio

  • ¿Qué ocurre con las categorías y los valores faltantes en tu configuración?
  • ¿Una mejora pequeña compensa el tiempo, memoria y complejidad añadidos?
  • ¿El resultado se mantiene al cambiar una semilla o un período de validación?
  • ¿Puedes explicar falsos positivos y falsos negativos para la decisión del negocio?
  • ¿El ajuste dependió de variables que no estarán disponibles al predecir?

Práctica y entregable

  1. Escribe un protocolo de una página antes de ejecutar.
  2. Entrena la referencia y una configuración sencilla de cada biblioteca que puedas instalar.
  3. Registra versión, parámetros, tiempo observado y métrica real; si no ejecutaste una biblioteca, márcala como pendiente.
  4. Elige una opción con sus limitaciones, sin presentar esa decisión como ranking general.
  5. Evalúa una sola vez la opción final con el test reservado.

Entrega la tabla de resultados y el protocolo. Ninguna cifra de precisión o velocidad se promete en esta lección: depende de los datos, la configuración y el entorno que tú registres.

Referencias para comprobar la implementación

Documentación consultada el 2 de octubre de 2026. Comprueba también las versiones y condiciones de tu proyecto.

Sigue con Machine Learning Práctico con Scikit-Learn

Esta lección forma parte de un curso de Cursalo. Revisa su programa y elige entre la compra individual o el acceso a toda la escuela.

Si ya tenías acceso a este curso, entra con tu cuenta: tus derechos y tu progreso se conservan. No necesitas comprarlo de nuevo.

01 / ELEGIR UNA RUTA

El próximo paso

Aprende IA mientras construyes algo que sí necesitas.

Empieza por el curso inicial o explora el catálogo para encontrar una práctica alineada con tu trabajo.