Search
Close this search box.
Machine learning super eficiente com CatBoost
CatBoost

Posts Relacionados:

Conheça CatBoost, um algoritmo e biblioteca de machine de código aberto desenvolvido pela Yandex que usa aumento de gradiente em árvores de decisão.

Receba nossa newsletter

CatBoost - Categorical Boosting da Yandex

CatBoost é um algoritmo e biblioteca de código aberto de alto desempenho para aumento (boosting) de gradiente em árvores de decisão. Lançado em 2017, o algoritmo ganhou popularidade na comunidade de machine learning devido à sua eficiência, precisão e facilidade de uso. Ele é utilizado, por exemplo, pela JetBrains para completar códigos e pela Cloudflare para detecção de bots.

CatBoost pode ser usado para tarefas de classificação e regressão e possui um número grande de recursos independentes. Projetado pela Yandex, esse algoritmo é empregado em pesquisas, sistemas de recomendação, assistentes pessoais, carros autônomos, previsão do tempo e muitas outras tarefas.

Em termos de permissões de uso, CatBoost é de código aberto, pode ser usado por qualquer pessoa e tem licença Apache 2.0. Ou seja, CatBoost é um algoritmo importante para você ter na sua caixa de ferramentas. Adicionalmente, de acordo com pesquisas do Kaggle de 2020 e 2022, cerca de 60% dos cientistas de dados usam algoritmos de boosting (XGBoost, CatBoost, LightGBM, AdaBoost) regularmente. Ou seja, nao faltam razões para você conhecer o CatBoost. Por isso, ele será o tema deste post.

logo catboost ai

Árvores de decisão simétricas

Tecnicamente, o algoritmo Catboost é uma variante dos algoritmos de boosting. Portanto, ele pertence às técnicas de aprendizado em conjunto.

Ele utiliza uma combinação de boosting ordenado, permutações aleatórias e otimização baseada em gradiente para obter alto desempenho em conjuntos de dados grandes e complexos. Porém, ele se diferencia de outros algoritmos de boosting, como XGBoost e LightGBM, porque cria árvores de decisão simétricas. Isso significa que, em cada etapa, o mesmo par de divisão de recursos que resulta na menor perda é escolhido e aplicado a todos os nós nesse nível.

Outra particularidade reside no fato do CatBoost treinar o modelo em um subconjunto de dados enquanto calcula os resíduos em outro.

A arquitetura balanceada do CatBoost tem várias vantagens. Em termos computacionais, ela permite a implementação eficiente em CPUs e GPUs e reduz o tempo de previsão. A arquitetura simétrica também atua como uma forma de regularização para evitar o sobreajuste (overfitting).

Processamento automático de recursos categóricos

Um dos recursos mais interessantes do CatBoost é a sua capacidade de lidar automaticamente com recursos categóricos. Ou seja, ele converte recursos categóricos em recursos numéricos automaticamente, economizando tempo e esforço na preparação de dados. Portanto, ele não requer nenhuma técnica de codificação de recursos, como One-Hot Encoder ou Label Encoder.

Alto desempenho livre de ajuste intensivo de parâmetros e sem overfitting

O CatBoost consegue obter resultados de alta qualidade com parâmetros padrão. Portanto, sua implementação evita a necessidade de ajustes extensivos do modelo.

Outra grande vantagem do algoritmo é a presença de um detector de overfitting. Ele interrompe o treinamento do modelo quando percebe antes do sobreajuste se instalar. Esse recurso ajuda a melhorar o desempenho de generalização do modelo e torná-lo mais robusto para novos dados.

Interpretabilidade

Interpretabilidade é um problema comum em algoritmos de machine learning. Para superar essa limitação, a biblioteca do CatBoost fornece várias ferramentas para interpretação. Essas ferramentas auxiliam os desenvolvedores a entender o comportamento do modelo e tomar decisões informadas sobre os dados.

CatBoost em Código

Para ilustrar como usar CatBoost em código, usaremos a biblioteca em combinação com Scikit-learn. Para instalar CatBoost, o comando com pip e conda são mostrados abaixo:

				
					# com pip
pip install catboost

# com conda
conda install conda-forge::catboost
				
			

Em código, o uso de CatBoost pode ser feito de maneira equivalente a outros algoritmos de boosting como AdaBoost. Usaremos o mesmo exemplo mostrado aqui para o Adaboost. Você pode consultar mais exemplos aqui

No nosso exemplo, realizamos a classificação do conjunto de dados iris com CatBoost como classificador. O código inteiro é mostrado abaixo:

				
					import pandas as pd
from catboost import CatBoostClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# Correga os dados
iris = load_iris()  

# separa atributos e classes
X = iris.data
y = iris.target

# Divide os dados
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# Cria o classificador
clf = CatBoostClassifier()

# Treina o modelo
clf.fit(X_train, y_train)

# Realiza predições no conjunto de teste
y_pred = clf.predict(X_test)

# Verifica acurácia
accuracy = accuracy_score(y_test, y_pred)
print("Acurácia:", round(accuracy*100, 3), "%")
# Acurácia: 96.667 %
				
			

Pela acurácia obtida com esse código simples, fica claro que CatBoost é um excelente algoritmo. Para conhecer melhor sobre ele, consulte a documentação oficial.

Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.

Imagem com IA Generativa – Dia 199

IA generativa img 199

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial