🚀 XGBoost Cheat Sheet

📄 Documentação Oficial

# Comando / Parâmetro O que faz Exemplo
1pip install xgboostInstala a biblioteca via gerenciador de pacotes!pip install xgboost
2import xgboost as xgbImportação padrão da bibliotecaimport xgboost as xgb
3xgb.XGBClassifier()Estimador para problemas de classificação (API Scikit-Learn)model = xgb.XGBClassifier()
4xgb.XGBRegressor()Estimador para problemas de regressão (API Scikit-Learn)model = xgb.XGBRegressor()
5xgb.DMatrix()Estrutura de dados interna otimizada do XGBoostdtrain = xgb.DMatrix(X, label=y)
6.fit(X, y)Treina o modelo com os dados fornecidosmodel.fit(X_train, y_train)
7.predict(X)Realiza predições de classe ou valorpreds = model.predict(X_test)
8.predict_proba(X)Retorna probabilidades das classes (apenas classificação)probs = model.predict_proba(X_test)
9.set_params()Define parâmetros do estimadormodel.set_params(max_depth=5)
10.get_booster()Acessa o objeto Booster subjacentebooster = model.get_booster()
11n_estimatorsNúmero de árvores (iterações de boosting)n_estimators=100
12learning_rate (eta)Taxa de aprendizado/encolhimento dos pesoslearning_rate=0.1
13max_depthProfundidade máxima de cada árvoremax_depth=6
14min_child_weightSoma mínima de pesos de instância necessária em um nómin_child_weight=1
15gammaRedução mínima de perda para criar uma nova partiçãogamma=0.2
16subsampleFração de amostras usadas para treinar cada árvoresubsample=0.8
17colsample_bytreeFração de colunas usadas por árvorecolsample_bytree=0.8
18colsample_bylevelFração de colunas usadas por nível da árvorecolsample_bylevel=0.7
19colsample_bynodeFração de colunas usadas por cada split de nócolsample_bynode=0.7
20lambda (reg_lambda)Termo de regularização L2 nos pesosreg_lambda=1.0
21alpha (reg_alpha)Termo de regularização L1 nos pesosreg_alpha=0
22tree_methodAlgoritmo de construção de árvore ('auto', 'exact', 'approx', 'hist')tree_method='hist'
23scale_pos_weightBalanceamento de classes positivas e negativasscale_pos_weight=99
24max_delta_stepAjuda na convergência em classes muito desbalanceadasmax_delta_step=1
25objectiveFunção de perda a ser minimizadaobjective='binary:logistic'
26eval_metricMétrica para validação dos dadoseval_metric='auc'
27early_stopping_roundsPara o treino se não houver melhora após N roundsearly_stopping_rounds=10
28random_stateSemente para reprodutibilidaderandom_state=42
29n_jobsNúmero de threads paralelas para rodarn_jobs=-1
30verbosityNível de mensagens verbosas (0 silêncio, 1 aviso, 2 info)verbosity=1
31multi:softmaxObjetivo para classificação multiclasseobjective='multi:softmax'
32multi:softprobMulticlasse retornando probabilidadesobjective='multi:softprob'
33reg:squarederrorRegressão com erro quadráticoobjective='reg:squarederror'
34reg:logisticRegressão logísticaobjective='reg:logistic'
35binary:hingePerda hinge para classificação bináriaobjective='binary:hinge'
36xgb.plot_importance()Plota a importância das featuresxgb.plot_importance(model)
37xgb.plot_tree()Plota uma árvore individual do modeloxgb.plot_tree(model, num_trees=0)
38xgb.to_graphviz()Converte árvore para formato Graphvizxgb.to_graphviz(model)
39feature_importances_Atributo que contém o peso de cada featuremodel.feature_importances_
40xgb.cv()Validação cruzada nativa do XGBoostxgb.cv(params, dtrain, nfold=5)
41xgb.train()Interface de treinamento de baixo nívelxgb.train(params, dtrain)
42evalsLista de monitoramento para o xgb.trainevals=[(dtest, 'eval')]
43num_boost_roundEquivalente a n_estimators no xgb.trainnum_boost_round=50
44.save_model()Salva o modelo em arquivo (.json ou .bin)model.save_model('xgb.json')
45.load_model()Carrega um modelo salvomodel.load_model('xgb.json')
46missingValor que deve ser interpretado como dado faltantemissing=np.nan
47use_label_encoder(Legado) Encoder de labels no Classifieruse_label_encoder=False
48enable_categoricalHabilita suporte nativo para tipos categóricosenable_categorical=True
49max_cat_to_onehotThreshold para conversão one-hot de categoriasmax_cat_to_onehot=4
50grow_policyControla como novos nós são adicionados ('depthwise', 'lossguide')grow_policy='lossguide'
51max_leavesNúmero máximo de nós (relevante para 'lossguide')max_leaves=31
52max_binNúmero máximo de buckets para o método histmax_bin=256
53predictorTipo de algoritmo preditor ('auto', 'cpu_predictor', 'gpu_predictor')predictor='gpu_predictor'
54sampling_methodMétodo de amostragem ('uniform', 'gradient_based')sampling_method='uniform'
55monotone_constraintsForça relação crescente/decrescente de featuresmonotone_constraints="(1, -1)"
56interaction_constraintsRestringe quais colunas podem interagirinteraction_constraints="[[0, 1]]"
57importance_typeTipo de importância ('weight', 'gain', 'cover')importance_type='gain'
58base_scoreValor inicial de predição (viés global)base_score=0.5
59validate_parametersSe deve validar parâmetros desconhecidosvalidate_parameters=True
60disable_default_eval_metricDesabilita métrica padrão do objetivodisable_default_eval_metric=True
61eval_setDados para monitorar durante o fiteval_set=[(X_val, y_val)]
62num_parallel_treeUsado para Random Forest dentro do XGBoostnum_parallel_tree=1
63boosterTipo de booster ('gbtree', 'gblinear' ou 'dart')booster='dart'
64sample_type (DART)Tipo de amostragem para dropoutssample_type='uniform'
65normalize_type (DART)Tipo de normalização de dropoutnormalize_type='tree'
66rate_drop (DART)Taxa de dropout das árvoresrate_drop=0.1
67one_drop (DART)Sempre dropar pelo menos uma árvoreone_drop=True
68skip_drop (DART)Probabilidade de pular o dropout no roundskip_drop=0.5
69updaterSequência de updaters de árvore a executarupdater='grow_colmaker'
70refresh_leafSe as folhas devem ser atualizadasrefresh_leaf=True
71process_typeTipo de processo ('default', 'update')process_type='default'
72gpu_idID da GPU a ser utilizadagpu_id=0
73single_precision_histogramUsa histogramas de precisão simples na GPUsingle_precision_histogram=True
74deterministic_histogramGarante histogramas determinísticos na GPUdeterministic_histogram=True
75feature_typesEspecifica tipos de features manualmentefeature_types=['q', 'q', 'c']
76max_cached_hist_nodeLimite de cache de histogramasmax_cached_hist_node=65536
77on_ext_memSe o DMatrix deve carregar de memória externaon_ext_mem=True
78ext_mem_cache_prefixPrefixo para arquivos de cache externosext_mem_cache_prefix='cache'
79feature_namesNomes customizados para as featuresfeature_names=['idade', 'renda']
80label_lower_boundLimite inferior para labels (survival)label_lower_bound=0
81label_upper_boundLimite superior para labels (survival)label_upper_bound=10
82multi_strategyEstratégia para multiclasse ('one_output_per_tree')multi_strategy='multi_output_tree'
83max_cat_thresholdNúmero máximo de categorias por splitmax_cat_threshold=64
84categorical_featureIndica quais índices são categóricoscategorical_feature=[0, 4]
85callbacksLista de funções executadas após cada roundcallbacks=[my_callback]
86iteration_rangeRange de árvores para o predictiteration_range=(0, 10)
87output_marginPrediz a margem bruta (antes da função ativadora)output_margin=True
88validate_featuresValida se as features no predict batem com o fitvalidate_features=True
89base_marginAjuste base inicial para cada amostradtrain.set_base_margin(margin)
90weightPesos individuais para cada amostradtrain.set_weight(weights)
91groupInformação de grupos para modelos de Rankingdtrain.set_group(group_sizes)
92rank:pairwiseObjetivo de ranking (LTR)objective='rank:pairwise'
93rank:ndcgOtimização direta de NDCGobjective='rank:ndcg'
94survival:coxAnálise de sobrevivência (Cox Proportional Hazards)objective='survival:cox'
95count:poissonRegressão de Poisson para contagensobjective='count:poisson'
96tweedie_variance_powerControla a variância na distribuição Tweedietweedie_variance_power=1.5
97base_estimatorEstimador base (geralmente None para gbtree)base_estimator=None
98n_iter_no_changeSinônimo para early stopping no sklearnn_iter_no_change=5
99best_iterationRecupera o melhor round do treinomodel.best_iteration
100best_scoreMelhor pontuação atingida na validaçãomodel.best_score
101feature_names_in_Nomes das colunas vistos durante o fitmodel.feature_names_in_
102evals_result()Retorna o histórico de erros do treinamentomodel.evals_result()
103intercept_Intercepção para boosters linearesmodel.intercept_
104coef_Coeficientes para boosters linearesmodel.coef_
105tree_limit(Legado) Limita número de árvores no predicttree_limit=50