LightGBM
LightGBM é uma estrutura de boosting de gradiente que expande árvores de decisão folha a folha a partir de histogramas de características, para treinar rapidamente com grandes conjuntos de dados tabulares.
LightGBM (Light Gradient Boosting Machine) é uma estrutura de código aberto de gradient boosting que treina conjuntos de árvores de decisão em dados tabulares, criada para oferecer velocidade e baixo uso de memória em grandes conjuntos de dados. A Microsoft lançou a ferramenta em 2016 e descreveu seus algoritmos no artigo da NeurIPS de 2017 LightGBM: uma árvore de decisão de gradient boosting altamente eficiente. Em março de 2026, o repositório oficial foi transferido para a organização lightgbm-org no GitHub, sob os mesmos mantenedores. O LightGBM oferece suporte a classificação, regressão e ranqueamento em Python, R, C++ e na linha de comando, e aparece em muitas soluções vencedoras de competições de aprendizado de máquina. Em tabelas de tamanho médio, com cerca de 10,000 linhas, conjuntos de árvores como esse ainda costumam superar o aprendizado profundo.
Como funciona o LightGBM#
O gradient boosting constrói árvores uma de cada vez. Cada nova árvore é ajustada aos gradientes da função de perda em relação às previsões do conjunto atual, que, no caso do erro quadrático, são simplesmente os resíduos; assim, ela corrige os erros deixados pelas árvores anteriores. A previsão do modelo é a soma das saídas de todas as árvores, cada uma multiplicada por uma taxa de aprendizado. A etapa mais custosa é encontrar a melhor divisão para cada nó, e o LightGBM a acelera com quatro técnicas:
- Divisões baseadas em histogramas: antes do treinamento, o LightGBM agrupa cada característica contínua em, no máximo, 255 intervalos (
max_bin). A busca por divisões percorre os limites dos intervalos, em vez de cada valor ordenado, e, após uma divisão, o histograma do filho menor é construído a partir dos dados, pois o histograma do filho maior equivale ao do pai menos o do filho menor. - Crescimento folha a folha: o LightGBM sempre divide a folha cuja melhor divisão mais reduz a perda, até que a árvore tenha
num_leavesfolhas (31 por padrão), em vez de dividir todos os nós em uma profundidade antes de avançar. Com o mesmo número de folhas, isso resulta numa perda menor do que o crescimento nível a nível e produz árvores profundas e desbalanceadas, que podem sobreajustar conjuntos de dados pequenos. - Amostragem unilateral baseada em gradientes (GOSS): as linhas com gradientes grandes são aquelas cujas previsões ainda são ruins. Com
data_sample_strategy="goss", o LightGBM mantém 20% das linhas com os maiores gradientes, seleciona aleatoriamente mais 10% do restante e atribui pesos maiores a essa amostra para manter a distribuição dos dados próxima da original. - Agrupamento exclusivo de características (EFB): características esparsas que raramente são diferentes de zero ao mesmo tempo, como colunas one-hot, são agrupadas numa única característica, reduzindo o número de histogramas a construir.
Cada árvore cresce repetindo a busca por divisões até esgotar seu limite de folhas ou não haver mais divisões úteis, e o boosting repete esse processo em cada rodada:
O LightGBM também divide diretamente características categóricas codificadas como inteiros quando elas são listadas em categorical_feature, agrupando categorias em cada divisão sem codificação one-hot, e trata valores ausentes por padrão. O treinamento é executado em CPUs, em GPUs (device_type="gpu" ou "cuda") e em várias máquinas com seus aprendizes distribuídos.
Treinamento e ajuste do LightGBM#
As classes LGBMClassifier, LGBMRegressor e LGBMRanker, no estilo do scikit-learn, atendem à maioria dos usos. Como as árvores folha a folha podem ficar muito profundas, os principais controles contra o sobreajuste são num_leaves, min_child_samples (20 linhas por folha por padrão) e max_depth, junto com a taxa de aprendizado e o número de árvores, geralmente definidos por ajuste de hiperparâmetros ou parada antecipada num conjunto de validação. As vantagens dos histogramas e do crescimento folha a folha ficam claras em comparação com o gradient boosting clássico de divisão exata do scikit-learn, numa tabela sintética com 20,000 linhas e 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}")Numa CPU Apple M5 Pro, o LightGBM constrói suas 200 árvores com até 31 folhas em menos de um segundo, enquanto o scikit-learn precisa de cerca de 20 segundos para 200 árvores de divisão exata com profundidade 3; além disso, as árvores maiores do LightGBM atingem acurácia de teste de 0.956, contra 0.901. Os modelos treinados são salvos em texto ou JSON, e o onnxmltools os converte para ONNX para servi-los fora do Python.
LightGBM e métodos relacionados#
- XGBoost: biblioteca de gradient boosting que popularizou o boosting regularizado de segunda ordem em 2014. Por padrão, ela constrói árvores com profundidade limitada (
max_depth=6), oferece crescimento folha a folha comgrow_policy="lossguide"e usa busca de divisões por histogramas como padrão desde a versão 2.0; por isso, as duas bibliotecas agora compartilham a maioria das técnicas. - CatBoost: biblioteca de boosting da Yandex, lançada em 2017, que constrói árvores simétricas e codifica características categóricas com estatísticas ordenadas do alvo para limitar o vazamento de dados do alvo.
- Floresta aleatória: treina árvores profundas de forma independente em amostras bootstrap e calcula a média de suas previsões, o que reduz a variância.
- HistGradientBoosting:
HistGradientBoostingClassifiereHistGradientBoostingRegressordo scikit-learn são implementações inspiradas no LightGBM que agrupam características em histogramas da mesma forma. - Modelos fundamentais tabulares: transformers pré-treinados, como o TabPFN, fazem previsões em tabelas pequenas numa única passagem direta, sem uma execução de treinamento para cada conjunto de dados.
Aplicações no mundo real#
- Fraude e risco de crédito: os bancos avaliam transações e pedidos de empréstimo com base no histórico da conta e em características do comerciante, do valor e do horário, e a inferência rápida do LightGBM atende às decisões por transação.
- Previsão de demanda: os varejistas preveem as vendas por produto e loja com base em vendas defasadas, preços, promoções e características do calendário. O fluxo de pessoas é uma entrada comum: o rastreamento de objetos do Ultralytics YOLO26 acompanha pessoas cruzando uma linha em vídeos de lojas e informa as contagens de entradas e saídas por classe; somadas por hora, elas se tornam características para uma previsão de escala de pessoal com LightGBM.
- Classificação de busca e recomendação:
LGBMRankertreina com o objetivo LambdaRank por padrão, ordenando documentos ou produtos em cada grupo de consulta para otimizar o ganho cumulativo descontado normalizado (NDCG).










