0Pricing
Learn AI with Python · Lección

LightGBM y CatBoost

Por qué LightGBM es más rápido, partición basada en histogramas y CatBoost para características categóricas.

LightGBM y CatBoost es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.

Más allá de XGBoost

XGBoost es potente, pero puede ser lento con conjuntos de datos muy grandes. LightGBM y CatBoost son bibliotecas más recientes de boosting de gradiente que mejoran la velocidad y gestionan los datos categóricos de forma más natural.

Divisiones basadas en histogramas

LightGBM agrupa las características continuas en intervalos discretos (un histograma) antes de encontrar las divisiones. Esto hace que la búsqueda de divisiones sea mucho más rápida y use menos memoria que el método exacto.

Crecimiento de árboles hoja a hoja

A diferencia del crecimiento por niveles, LightGBM hace crecer los árboles hoja a hoja: primero divide la hoja con la mayor reducción de la pérdida. Esto converge más rápido, pero puede producir sobreajuste, por lo que se controla con num_leaves.

LGBMClassifier y num_leaves

num_leaves es el control de complejidad más importante de LightGBM. Los valores más grandes aumentan la exactitud, pero también el riesgo de sobreajuste. Una regla práctica es mantener num_leaves < 2^max_depth.

from lightgbm import LGBMClassifier

model = LGBMClassifier(
    n_estimators=300,
    num_leaves=31,
    learning_rate=0.05,
    random_state=0,
)
model.fit(Xtr, ytr)
print(model.score(Xte, yte))

Ventajas de velocidad de LightGBM

Gracias a la discretización en histogramas, el crecimiento hoja a hoja y el submuestreo de características y datos, LightGBM se entrena notablemente más rápido que XGBoost en conjuntos de datos grandes, a menudo con una exactitud comparable.

from lightgbm import LGBMClassifier

model = LGBMClassifier(
    n_estimators=1000,
    num_leaves=63,
    learning_rate=0.03,
    feature_fraction=0.8,
    bagging_fraction=0.8,
)

Detención temprana en LightGBM

LightGBM admite la detención temprana mediante callbacks. Pase un conjunto de evaluación y un callback early_stopping para detener el entrenamiento cuando la métrica deje de mejorar.

import lightgbm as lgb
from lightgbm import LGBMClassifier

model = LGBMClassifier(n_estimators=2000, learning_rate=0.03)
model.fit(
    Xtr, ytr,
    eval_set=[(Xte, yte)],
    callbacks=[lgb.early_stopping(50)],
)

CatBoost y las características categóricas

CatBoost destaca con datos categóricos. Puede pasar directamente las columnas categóricas sin procesar mediante cat_features, sin necesidad de codificación manual.

Internamente, utiliza estadísticas ordenadas del objetivo para evitar la fuga del objetivo.

from catboost import CatBoostClassifier

model = CatBoostClassifier(
    iterations=500,
    learning_rate=0.05,
    depth=6,
    verbose=False,
)
model.fit(Xtr, ytr, cat_features=[0, 3, 5])

Por qué es potente no codificar

Con otras bibliotecas debe aplicar una codificación one-hot o de etiquetas a las categorías, lo que puede disparar la dimensionalidad o provocar una fuga del objetivo. CatBoost gestiona esto internamente mediante boosting ordenado, lo que reduce el sobreajuste de las características categóricas.

Parámetros clave de CatBoost

CatBoost utiliza iterations (como n_estimators), learning_rate y depth (construye árboles simétricos). A menudo funciona bien con un ajuste mínimo.

from catboost import CatBoostClassifier

model = CatBoostClassifier(
    iterations=1000,
    learning_rate=0.03,
    depth=8,
    l2_leaf_reg=3.0,
    verbose=100,
)

Comparación de velocidad

Orientación general:

  • LightGBM suele ser el más rápido con grandes conjuntos de datos numéricos
  • CatBoost es la mejor opción cuando hay muchas características categóricas y requiere menos ajuste
  • XGBoost es maduro, robusto y ofrece buenos valores predeterminados

Compare los tres con sus datos; los resultados varían según el problema.

Elección de una biblioteca

Si tiene muchos datos categóricos, comience con CatBoost. Para tablas numéricas enormes y cuando la velocidad sea prioritaria, elija LightGBM. Para una línea base probada, elija XGBoost. Los tres utilizan boosting de gradiente internamente, por lo que los conceptos se aplican por igual.

Comprobación rápida

Ponga a prueba sus conocimientos sobre las bibliotecas de boosting de gradiente.

Resumen

Resumen: LightGBM utiliza un crecimiento basado en histogramas y hoja a hoja, controlado por num_leaves, para ofrecer velocidad con grandes volúmenes de datos numéricos. CatBoost gestiona las características categóricas de forma nativa mediante cat_features, sin codificación. Ambos, junto con XGBoost, son variantes del boosting de gradiente. Compare su rendimiento para elegir: CatBoost para datos categóricos y LightGBM para velocidad.

Preguntas frecuentes

¿La lección «LightGBM y CatBoost» es gratis?

Sí — el texto completo de «LightGBM y CatBoost» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué aprenderé en «LightGBM y CatBoost»?

Por qué LightGBM es más rápido, partición basada en histogramas y CatBoost para características categóricas. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «LightGBM y CatBoost»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?

Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Árboles de decisión: teoría e implementación
  2. Random Forests y bagging
  3. Gradient boosting: GBM y XGBoost
  4. LightGBM y CatBoost
← Volver a Learn AI with Python