🌿 LightGBM Cheat Sheet

📄 Documentação Oficial

# Comando / Parâmetro O que faz Exemplo
1pip install lightgbmInstalação via terminal!pip install lightgbm
2import lightgbm as lgbImportação convencionalimport lightgbm as lgb
3lgb.LGBMClassifier()Estimador para classificação (Scikit-Learn API)clf = lgb.LGBMClassifier()
4lgb.LGBMRegressor()Estimador para regressão (Scikit-Learn API)reg = lgb.LGBMRegressor()
5lgb.Dataset()Formato de dados nativo e eficiente do LightGBMtrain_data = lgb.Dataset(X, label=y)
6boosting_typeAlgoritmo de boosting ('gbdt', 'dart', 'goss', 'rf')boosting_type='gbdt'
7num_leavesNúmero máximo de folhas em uma árvore (Principal)num_leaves=31
8max_depthLimita a profundidade da árvore (evita overfitting)max_depth=-1
9learning_rateTaxa de aprendizado (shrinkage)learning_rate=0.05
10n_estimatorsNúmero de iterações de boosting (árvores)n_estimators=1000
11min_child_samplesNúmero mínimo de dados em uma folha (min_data_in_leaf)min_child_samples=20
12min_child_weightSoma mínima do hessiano necessária em uma folhamin_child_weight=0.001
13subsampleFração de dados usados para treinar cada árvoresubsample=0.8
14subsample_freqFrequência para realizar o baggingsubsample_freq=5
15colsample_bytreeFração de features selecionadas por árvorecolsample_bytree=0.8
16reg_alphaRegularização L1 (Lasso)reg_alpha=0.1
17reg_lambdaRegularização L2 (Ridge)reg_lambda=0.1
18random_stateSemente para garantir resultados idênticosrandom_state=42
19n_jobsNúmero de núcleos de CPU para processamenton_jobs=-1
20objectiveFunção objetivo ('binary', 'multiclass', 'regression')objective='binary'
21metricMétrica de avaliação ('auc', 'rmse', 'mae', 'logloss')metric='auc'
22early_stopping_roundsPara se a métrica não melhorar após X roundsearly_stopping_rounds=50
23categorical_featureLista de índices/nomes de colunas categóricascategorical_feature=['c1', 'c2']
24verboseControla o log de treinamento (-1 silêncio, 1 log)verbose=-1
25.fit()Treina o modelo com X e ymodel.fit(X_train, y_train)
26.predict()Prediz classes ou valores contínuosy_pred = model.predict(X_test)
27.predict_proba()Prediz probabilidades (classificação)y_prob = model.predict_proba(X_test)
28.score()Retorna a acurácia ou R² médiomodel.score(X_test, y_test)
29lgb.plot_importance()Plota a importância das variáveislgb.plot_importance(model)
30lgb.plot_tree()Visualização gráfica de uma árvore específicalgb.plot_tree(model, tree_index=0)
31lgb.plot_metric()Plota o histórico da métrica durante o treinolgb.plot_metric(evals_result)
32lgb.create_tree_digraph()Cria um objeto Graphviz da árvorelgb.create_tree_digraph(model)
33feature_importances_Vetor com a importância de cada atributoprint(model.feature_importances_)
34ds.save_binary()Salva o Dataset em arquivo binário (rápido)train_data.save_binary('t.bin')
35ds.construct()Constrói o dataset explicitamentetrain_data.construct()
36ds.set_categorical_feature()Define categorias após a criação do datasetds.set_categorical_feature([0, 1])
37deviceDispositivo de treino ('cpu' ou 'gpu')device='gpu'
38gpu_platform_idID da plataforma OpenCL para GPUgpu_platform_id=0
39gpu_device_idID do dispositivo GPU específicogpu_device_id=0
40num_threadNúmero de threads (mesmo que n_jobs)num_thread=4
41force_col_wiseForça construção de histogramas por colunaforce_col_wise=True
42force_row_wiseForça construção de histogramas por linhaforce_row_wise=True
43.save_model()Salva modelo treinado em arquivo de textomodel.save_model('lgbm.txt')
44lgb.Booster(model_file=)Carrega modelo a partir de arquivobst = lgb.Booster(model_file='lgbm.txt')
45.dump_model()Retorna estrutura do modelo em formato JSONjson_model = model.dump_model()
46leaf_wiseEstratégia padrão de crescimento (mais rápido)grow_policy='leaf_wise'
47depth_wiseCrescimento por nível (estilo XGBoost)grow_policy='depth_wise'
48top_rateUsado no GOSS (porcentagem de dados com alto gradiente)top_rate=0.2
49other_rateUsado no GOSS (porcentagem de dados com baixo gradiente)other_rate=0.1
50fobjFunção de perda customizadalgb.train(..., fobj=my_loss)
51fevalFunção de métrica customizadalgb.train(..., feval=my_metric)
52is_unbalanceTrata datasets desbalanceados (binário)is_unbalance=True
53scale_pos_weightPeso para a classe positivascale_pos_weight=5.0
54bagging_fractionSinônimo de subsamplebagging_fraction=0.8
55feature_fractionSinônimo de colsample_bytreefeature_fraction=0.9
56extra_treesUsa splits aleatórios (estilo ExtraTrees)extra_trees=True
57path_smoothSuavização para caminhos em árvorespath_smooth=1.0
58max_binNúmero máximo de bins para agrupar featuresmax_bin=255
59min_data_in_binDados mínimos por bin do histogramamin_data_in_bin=3
60data_random_seedSemente para amostragem de dadosdata_random_seed=1
61feature_fraction_seedSemente para frações de featuresfeature_fraction_seed=2
62bin_construct_sample_cntAmostras para construir os binsbin_construct_sample_cnt=200000
63interaction_constraintsLista de restrições de interaçãointeraction_constraints=[[0, 1], [2, 3]]
64monotone_constraintsRestrição de monotonicidade (1 cresce, -1 decresce)monotone_constraints=(1, -1, 0)
65lambda_l1Sinônimo de reg_alphalambda_l1=0.1
66lambda_l2Sinônimo de reg_lambdalambda_l2=0.1
67min_gain_to_splitGanho mínimo para realizar um splitmin_gain_to_split=0.01
68top_kUsado no algoritmo de votação paralelatop_k=20
69headerSe os dados têm cabeçalho (ao ler arquivo)header=True
70label_columnÍndice da coluna alvo em arquivoslabel_column=0
71weight_columnÍndice da coluna de pesos em arquivosweight_column=1
72group_columnÍndice da coluna de grupo para Rankinggroup_column=2
73ignore_columnColunas para ignorar no treinoignore_column=[3, 4]
74precise_float_parserUsa parser de float de alta precisãoprecise_float_parser=True
75two_roundLê o arquivo de dados em duas passadas (economiza RAM)two_round=True
76input_modelArquivo de modelo para continuar o treinoinput_model='old.model'
77output_modelNome do arquivo de saída do modelooutput_model='new.model'
78snapshot_freqFrequência para salvar snapshots do modelosnapshot_freq=10
79verbosity_freqFrequência de logs de métricasverbosity_freq=10
80save_binarySalva dados em binário para reusosave_binary=True
81enable_bundleHabilita Exclusive Feature Bundling (EFB)enable_bundle=True
82use_missingHabilita tratamento de valores nulosuse_missing=True
83zero_as_missingTrata o valor zero como nulo (NaN)zero_as_missing=True
84feature_pre_filterPré-filtra features constantes ou inúteisfeature_pre_filter=True
85is_enable_sparseHabilita otimização para dados esparsosis_enable_sparse=True
86sparse_thresholdThreshold para considerar dado como esparsosparse_threshold=0.8
87use_quantized_gradUsa gradientes quantizados (mais rápido)use_quantized_grad=True
88num_grad_quant_binsNúmero de bins para quantização de gradientenum_grad_quant_bins=4
89linear_treeUsa modelos lineares nas folhaslinear_tree=True
90refit_decay_rateTaxa de decaimento para refit de dadosrefit_decay_rate=0.9
91cegb_tradeoffTradeoff para o Cost-Efficient Gradient Boostingcegb_tradeoff=1.0
92cegb_penalty_feature_lazyPenalidade para features no CEGBcegb_penalty_feature_lazy=[1, 1]
93min_data_per_groupDados mínimos por grupo em Rankingmin_data_per_group=100
94max_conflict_rateTaxa de conflito máxima para EFBmax_conflict_rate=0.0
95categorical_columnÍndices de colunas categóricas nativascategorical_column=[12]
96predict_disable_shape_checkDesativa checagem de shape no predictpredict_disable_shape_check=True