LightGBM e CatBoost
Por que LightGBM é mais rápido, divisão baseada em histogramas e CatBoost para atributos categóricos.
LightGBM e CatBoost é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
Além do XGBoost
O XGBoost é poderoso, mas pode ser lento em conjuntos de dados muito grandes. LightGBM e CatBoost são bibliotecas mais recentes de reforço por gradiente que aumentam a velocidade e lidam com dados categóricos de forma mais natural.
Divisões baseadas em histogramas
LightGBM agrupa características contínuas em intervalos discretos (um histograma) antes de encontrar as divisões. Isso torna a busca por divisões muito mais rápida e usa menos memória do que o método exato.
Crescimento de árvores folha a folha
Ao contrário do crescimento nível a nível, o LightGBM cresce as árvores folha a folha: primeiro divide a folha com a maior redução da perda. Isso converge mais rapidamente, mas pode causar sobreajuste; por isso, controle-o com num_leaves.
LGBMClassifier e num_leaves
num_leaves é o controle de complexidade mais importante do LightGBM. Valores maiores aumentam a acurácia, mas elevam o risco de sobreajuste. Uma regra prática é manter 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))Vantagens de velocidade do LightGBM
Graças à divisão em intervalos de histograma, ao crescimento folha a folha e à subamostragem de características e dados, o LightGBM treina visivelmente mais rápido do que o XGBoost em conjuntos de dados grandes, muitas vezes com acurácia semelhante.
from lightgbm import LGBMClassifier
model = LGBMClassifier(
n_estimators=1000,
num_leaves=63,
learning_rate=0.03,
feature_fraction=0.8,
bagging_fraction=0.8,
)Parada antecipada no LightGBM
O LightGBM oferece parada antecipada por meio de funções de retorno. Passe um conjunto de avaliação e uma função de retorno early_stopping para interromper o treinamento quando a métrica se estabilizar.
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 e características categóricas
CatBoost se destaca com dados categóricos. Passe as colunas categóricas brutas diretamente por meio de cat_features, sem necessidade de codificação manual.
Internamente, ele usa estatísticas ordenadas do alvo para evitar o vazamento do alvo.
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 que não codificar é poderoso
Com outras bibliotecas, é necessário codificar as categorias com indicadores ou rótulos, o que pode aumentar muito a dimensionalidade ou vazar o alvo. O CatBoost lida com isso internamente usando o reforço ordenado, reduzindo o sobreajuste em características categóricas.
Principais parâmetros do CatBoost
O CatBoost usa iterations (como n_estimators), learning_rate e depth (ele cria árvores simétricas). Muitas vezes, ele funciona bem com um ajuste mínimo.
from catboost import CatBoostClassifier
model = CatBoostClassifier(
iterations=1000,
learning_rate=0.03,
depth=8,
l2_leaf_reg=3.0,
verbose=100,
)Comparação de velocidade
Orientação geral:
- LightGBM geralmente é o mais rápido em conjuntos de dados numéricos grandes
- CatBoost é melhor quando há muitas características categóricas e exige menos ajustes
- XGBoost é maduro, robusto e tem bons valores padrão
Compare os três com seus dados; os resultados variam conforme o problema.
Escolhendo uma biblioteca
Se você tem muitos dados categóricos, comece com o CatBoost. Para tabelas numéricas enormes e velocidade, escolha o LightGBM. Para uma linha de base comprovada, use o XGBoost. Os três usam reforço por gradiente internamente, portanto os conceitos podem ser transferidos.
Verificação rápida
Teste seus conhecimentos sobre bibliotecas de reforço por gradiente.
Recapitulação
Recapitulação: O LightGBM usa crescimento baseado em histogramas e folha a folha, controlado por num_leaves, para obter velocidade com dados numéricos grandes. O CatBoost lida nativamente com características categóricas por meio de cat_features, sem codificação. Ambos, assim como o XGBoost, são variações de reforço por gradiente. Faça uma comparação para escolher: CatBoost para dados categóricos e LightGBM para velocidade.
Perguntas Frequentes
A aula “LightGBM e CatBoost” é grátis?
Sim — o texto completo de “LightGBM e CatBoost” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “LightGBM e CatBoost”?
Por que LightGBM é mais rápido, divisão baseada em histogramas e CatBoost para atributos categóricos. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “LightGBM e CatBoost”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Árvores de decisão: teoria e implementação
- Florestas aleatórias e bagging
- Gradient Boosting: GBM e XGBoost
- LightGBM e CatBoost