🚀 CatBoost Cheat Sheet

📄 Documentação Oficial

# Comando / Função / Parâmetro O que faz Exemplo
1pip install catboostInstala a biblioteca via terminal!pip install catboost
2CatBoostClassifier()Modelo para problemas de classificaçãomodel = CatBoostClassifier()
3CatBoostRegressor()Modelo para problemas de regressãomodel = CatBoostRegressor()
4Pool()Estrutura de dados otimizada do CatBoosttrain_pool = Pool(X, y, cat_features=ids)
5iterations=Número máximo de árvores (n_estimators)iterations=1000
6learning_rate=Taxa de aprendizado (eta)learning_rate=0.03
7depth=Profundidade das árvores (1 a 16)depth=6
8l2_leaf_reg=Coeficiente de regularização L2l2_leaf_reg=3.0
9cat_features=Lista de índices das colunas categóricascat_features=[0, 3, 5]
10loss_function=Métrica a ser minimizada no treinoloss_function='Logloss'
11custom_loss=Métricas extras para monitorarcustom_loss=['AUC', 'Accuracy']
12eval_metric=Métrica usada para overfitting detectoreval_metric='F1'
13random_seed=Semente para reprodutibilidaderandom_seed=42
14early_stopping_rounds=Para o treino se a métrica não melhorarearly_stopping_rounds=50
15use_best_model=Usa a árvore com melhor score do eval_setuse_best_model=True
16od_type=Tipo de detector de overfitting ('IncToDec', 'Iter')od_type='Iter'
17od_wait=Número de iterações para o detector esperarod_wait=20
18task_type='GPU'Habilita treinamento via placa de vídeotask_type='GPU'
19devices=IDs das GPUs a serem utilizadasdevices='0:1'
20thread_count=Número de threads paralelas (CPU)thread_count=-1
21bootstrap_type=Método de amostragem (Bayesian, Bernoulli, MVS)bootstrap_type='MVS'
22subsample=Porcentagem de dados para cada árvoresubsample=0.8
23model.fit()Treina o modelo nos dadosmodel.fit(X_train, y_train)
24model.predict()Faz predições (classes ou valores)model.predict(X_test)
25model.predict_proba()Retorna probabilidades das classesmodel.predict_proba(X_test)
26model.save_model()Exporta o modelo para um arquivomodel.save_model('cat.bin')
27model.load_model()Carrega um modelo salvomodel.load_model('cat.bin')
28model.get_feature_importance()Retorna a importância das colunasmodel.get_feature_importance()
29model.best_iteration_Retorna o índice da melhor iteraçãoprint(model.best_iteration_)
30model.get_params()Mostra os parâmetros atuais do modelomodel.get_params()
31plot=TrueGera gráficos de treino em tempo realmodel.fit(..., plot=True)
32get_object_importance()Calcula impacto de cada linha no modelomodel.get_object_importance(pool)
33calc_feature_statistics()Estatísticas detalhadas de uma featuremodel.calc_feature_statistics(df, 'col')
34one_hot_max_size=Limite para usar One-Hot Encodingone_hot_max_size=10
35text_features=Identifica colunas com texto livretext_features=['comentario']
36tokenizers=Configuração de tokenização de textotokenizers=[{'tokenizer_id': 'Space'}]
37dictionaries=Configurações de dicionário para textodictionaries=[{'dict_id': 'Word'}]
38cv()Cross-validation integradacatboost.cv(pool, params)
39grid_search()Busca exaustiva de hiperparâmetrosmodel.grid_search(params, X, y)
40randomized_search()Busca aleatória de hiperparâmetrosmodel.randomized_search(params, X, y)
41nan_mode=Como tratar valores nulos ('Min', 'Max', 'Forbidden')nan_mode='Min'
42'Logloss'Classificação binária padrãoloss_function='Logloss'
43'MultiClass'Classificação multiclasseloss_function='MultiClass'
44'MAE'Erro absoluto médio (Regressão)loss_function='MAE'
45'RMSE'Raiz do erro quadrático médio (Regressão)loss_function='RMSE'
46'Poisson'Para dados de contagemloss_function='Poisson'
47'Tweedie'Para seguros ou dados com muitos zerosloss_function='Tweedie'
48leaf_estimation_method=Método p/ calcular valores das folhasleaf_estimation_method='Newton'
49grow_policy=Estratégia de crescimento (SymmetricTree, Depthwise, Lossguide)grow_policy='Depthwise'
50min_data_in_leaf=Mínimo de amostras em cada folhamin_data_in_leaf=1
51max_leaves=Máximo de folhas (usado em Lossguide)max_leaves=31
52'YetiRank'Função de perda para ranqueamentoloss_function='YetiRank'
53group_id=Identificador de grupos para Rankinggroup_id=[1, 1, 2, 2]
54type='ShapValues'Extrai valores SHAPmodel.get_feature_importance(data, type='ShapValues')
55type='Interaction'Calcula interação entre featuresmodel.get_feature_importance(type='Interaction')
56format='cpp'Exporta modelo para código C++model.save_model('m.cpp', format='cpp')
57format='python'Exporta modelo para código Python puromodel.save_model('m.py', format='python')
58format='onnx'Exporta para formato ONNXmodel.save_model('m.onnx', format='onnx')
59verbose=Frequência de logs (True, False ou int)verbose=100
60logging_level=Nível de log ('Silent', 'Verbose', 'Info', 'Debug')logging_level='Silent'
61metric_period=Intervalo para calcular métricas de evalmetric_period=10
62ignored_features=Colunas que o modelo deve ignorarignored_features=[1, 10]
63allow_writing_files=Criação de arquivos de log no discoallow_writing_files=False
64train_dir=Diretório para salvar logs de treinotrain_dir='logs/'
65border_count=Número de divisões para variáveis numéricasborder_count=254
66feature_weights=Dá pesos diferentes para colunas específicasfeature_weights=[1, 1, 5]
67class_weights=Pesos para classes desbalanceadasclass_weights=[1, 10]
68auto_class_weights=Balanceamento automático ('Balanced', 'SqrtBalanced')auto_class_weights='Balanced'
69scale_pos_weight=Peso para a classe positiva (Binário)scale_pos_weight=2.5
70bagging_temperature=Intensidade do bootstrap Bayesianobagging_temperature=1
71random_strength=Força da aleatoriedade nos splitsrandom_strength=1
72mvs_reg=Regularização para MVS samplingmvs_reg=0.1
73posterior_sampling=Uso de amostragem posterior (Incerteza)posterior_sampling=True
74model_size_reg=Regularização do tamanho do modelo finalmodel_size_reg=0.5
75has_time=Respeita a ordem temporal dos dadoshas_time=True
76eval_set=Dados de validação para monitoramentoeval_set=(X_val, y_val)
77baseline=Valor base inicial para as prediçõesbaseline=[...]
78name=Nome amigável para o modeloname='MeusDados'
79feature_names=Define nomes customizados para colunasfeature_names=['idade', 'renda']
80per_float_feature_quantization=Configura quantização por colunaper_float_feature_quantization=['0:border_count=1024']
81text_processing=Pipeline completo de processamento de textotext_processing=['NaiveBayes+Word']
82embedding_features=Indices de colunas com vetores/embeddingsembedding_features=[12]
83get_all_params()Dicionário com todos os hiperparâmetrosmodel.get_all_params()
84get_metadata()Recupera metadados do arquivo do modelomodel.get_metadata()
85is_fitted()Verifica se o modelo já foi treinadomodel.is_fitted()
86shrink()Reduz o número de árvores do modelomodel.shrink(100)
87get_scale_and_bias()Escala e viés interno do modelomodel.get_scale_and_bias()
88set_feature_names()Atribui nomes às colunas após treinomodel.set_feature_names(names)
89eval_metrics()Calcula métricas sobre um poolmodel.eval_metrics(data, ['AUC'])
90to_classifier()Converte objeto base em classificadormodel.to_classifier()
91to_regressor()Converte objeto base em regressormodel.to_regressor()
92compare()Utilitário para comparar dois modelosmodel1.compare(model2)
93virtual_ensembles_count=Número de modelos virtuais para incertezavirtual_ensembles_count=10
94prediction_type=Tipo de output ('Probability', 'Class', 'RawFormulaVal')prediction_type='Class'
95ntree_start=Árvore inicial para prediçãontree_start=0
96ntree_end=Árvore final para prediçãontree_end=500
97thread_count=Threads para predição paralelathread_count=4