LightGBM
LightGBM es un framework de gradient boosting que desarrolla árboles de decisión hoja por hoja a partir de histogramas de características para entrenar rápidamente con grandes conjuntos de datos tabulares.
LightGBM (máquina de gradient boosting ligero) es un framework de código abierto de gradient boosting que entrena conjuntos de árboles de decisión con datos tabulares y está diseñado para ofrecer velocidad y consumir poca memoria en conjuntos de datos grandes. Microsoft lo publicó en 2016 y describió sus algoritmos en el artículo de NeurIPS de 2017 LightGBM: un árbol de decisión de gradient boosting altamente eficiente. En marzo de 2026, el repositorio oficial pasó a la organización lightgbm-org de GitHub, bajo los mismos responsables. LightGBM permite realizar clasificación, regresión y ranking desde Python, R, C++ y la línea de comandos, y aparece en muchas soluciones ganadoras de competiciones de aprendizaje automático. En tablas de tamaño medio, de unas 10,000 filas, los conjuntos de árboles como este a menudo siguen superando al aprendizaje profundo.
Cómo funciona LightGBM#
El gradient boosting construye árboles de uno en uno. Cada árbol nuevo se ajusta a los gradientes de la función de pérdida con respecto a las predicciones del conjunto actual; en el caso del error cuadrático, son simplemente los residuos, por lo que corrige los errores que dejaron los árboles anteriores. La predicción del modelo es la suma de las salidas de todos los árboles, cada una escalada por una tasa de aprendizaje. El paso más costoso consiste en encontrar la mejor división para cada nodo, y LightGBM lo acelera con cuatro técnicas:
- Divisiones basadas en histogramas: Antes del entrenamiento, LightGBM agrupa cada característica continua en un máximo de 255 intervalos (
max_bin). La búsqueda de divisiones examina los límites de los intervalos en lugar de cada valor ordenado y, después de una división, solo construye a partir de los datos el histograma del hijo más pequeño, ya que el histograma del hijo más grande equivale al del padre menos el del hijo más pequeño. - Crecimiento por hojas: LightGBM siempre divide la hoja cuya mejor división reduce más la pérdida, hasta que el árbol alcanza
num_leaveshojas (31 de forma predeterminada), en lugar de dividir todos los nodos de un nivel antes de pasar al siguiente. Con el mismo número de hojas, alcanza una pérdida menor que el crecimiento por niveles y produce árboles profundos y desequilibrados que pueden sobreajustarse a conjuntos de datos pequeños. - Muestreo de un solo lado basado en gradientes (GOSS): Las filas con gradientes grandes son aquellas cuyas predicciones siguen siendo deficientes. Con
data_sample_strategy="goss", LightGBM conserva el 20 % de las filas con los gradientes más grandes, selecciona aleatoriamente un 10 % adicional del resto y asigna más peso a esa muestra para que la distribución de los datos se mantenga próxima a la original. - Agrupación exclusiva de características (EFB): Las características dispersas que rara vez son distintas de cero al mismo tiempo, como las columnas one-hot, se combinan en una sola característica, lo que reduce el número de histogramas que hay que construir.
Cada árbol crece repitiendo la búsqueda de divisiones hasta agotar su presupuesto de hojas o hasta que ninguna división resulte útil; el proceso de boosting se repite en cada ronda:
LightGBM también divide directamente las características categóricas codificadas como enteros cuando se incluyen en categorical_feature, agrupando categorías en cada división sin codificación one-hot, y gestiona los valores ausentes de forma predeterminada. El entrenamiento se ejecuta en CPU, en GPU (device_type="gpu" o "cuda") y en varias máquinas con sus aprendedores distribuidos.
Entrenamiento y ajuste de LightGBM#
Las clases LGBMClassifier, LGBMRegressor y LGBMRanker, con un estilo similar al de scikit-learn, cubren la mayoría de los usos. Como los árboles que crecen por hojas pueden alcanzar mucha profundidad, los principales controles contra el sobreajuste son num_leaves, min_child_samples (20 filas por hoja de forma predeterminada) y max_depth, junto con la tasa de aprendizaje y el número de árboles, que suelen determinarse mediante el ajuste de hiperparámetros o la detención temprana en un conjunto de validación. Las ventajas de los histogramas y el crecimiento por hojas se aprecian al compararlos con el gradient boosting clásico de divisiones exactas de scikit-learn en una tabla sintética de 20,000 filas y 40 características:
import time
import lightgbm as lgb
from sklearn.datasets import make_classification
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import train_test_split
X, y = make_classification(n_samples=20_000, n_features=40, n_informative=15, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 200 trees each: exact split search vs. LightGBM's histograms and leaf-wise growth
for model in (GradientBoostingClassifier(n_estimators=200), lgb.LGBMClassifier(n_estimators=200, verbose=-1)):
start = time.perf_counter()
model.fit(X_train, y_train)
seconds = time.perf_counter() - start
print(f"{type(model).__name__}: {seconds:.1f} s, accuracy {model.score(X_test, y_test):.3f}")En una CPU Apple M5 Pro, LightGBM construye sus 200 árboles de hasta 31 hojas en menos de un segundo, mientras que scikit-learn necesita unos 20 segundos para construir 200 árboles con divisiones exactas y profundidad 3; además, los árboles más grandes de LightGBM alcanzan una precisión de prueba de 0.956, frente a 0.901. Los modelos entrenados se guardan en texto o JSON, y onnxmltools los convierte a ONNX para servirlos fuera de Python.
LightGBM y métodos relacionados#
- XGBoost: Biblioteca de gradient boosting que popularizó en 2014 el boosting regularizado de segundo orden. De forma predeterminada, construye árboles con profundidad limitada (
max_depth=6), ofrece crecimiento por hojas congrow_policy="lossguide"y, desde la versión 2.0, utiliza de forma predeterminada la búsqueda de divisiones mediante histogramas, por lo que ambas bibliotecas comparten ahora la mayoría de las técnicas. - CatBoost: Biblioteca de boosting de Yandex, publicada en 2017, que construye árboles simétricos y codifica las características categóricas mediante estadísticas ordenadas del objetivo para limitar la fuga de información del objetivo.
- Bosque aleatorio: Entrena árboles profundos de forma independiente con muestras bootstrap y promedia sus predicciones, lo que reduce la varianza.
- HistGradientBoosting:
HistGradientBoostingClassifieryHistGradientBoostingRegressorde scikit-learn son implementaciones inspiradas en LightGBM que agrupan las características en histogramas del mismo modo. - Modelos fundacionales tabulares: Transformers preentrenados, como TabPFN, hacen predicciones en tablas pequeñas con una sola pasada hacia delante, sin entrenar el modelo para cada conjunto de datos.
Aplicaciones en el mundo real#
- Fraude y riesgo de crédito: Los bancos evalúan transacciones y solicitudes de préstamos a partir del historial de cuentas y de características como el comercio, el importe y la hora; la inferencia rápida de LightGBM resulta adecuada para tomar decisiones por transacción.
- Previsión de la demanda: Los minoristas predicen las ventas de cada producto y tienda a partir de características como las ventas pasadas, los precios, las promociones y el calendario. El tráfico de personas es un dato de entrada habitual: el recuento de objetos de Ultralytics YOLO26 sigue a las personas que cruzan una línea en los vídeos de las tiendas e informa de los recuentos de entrada y salida por clase, que, sumados por hora, se convierten en características para una previsión de personal con LightGBM.
- Ranking de búsquedas y recomendaciones:
LGBMRankerse entrena de forma predeterminada con el objetivo LambdaRank, que ordena documentos o productos dentro de cada grupo de consultas para optimizar la ganancia acumulada descontada y normalizada (NDCG).










