Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

CatBoost

CatBoost é uma biblioteca de boosting de gradiente de código aberto da Yandex que codifica recursos categóricos com estatísticas ordenadas do alvo e cria árvores simétricas.

CatBoost é uma biblioteca de código aberto de gradient boosting para árvores de decisão, desenvolvida pela Yandex e lançada em 2017. Seu nome vem de "boosting categórico": ela aceita colunas categóricas, como cidade, ID do produto ou tipo de dispositivo, como strings brutas e as converte internamente em números; assim, os dados tabulares não precisam de codificação one-hot ou por alvo manual antes do treinamento. Duas ideias do artigo apresentado na NeurIPS 2018, estatísticas de alvo ordenadas e boosting ordenado, impedem que o rótulo de cada linha de treinamento seja usado nos números empregados para ajustá-la, um vazamento que distorce tanto a codificação por alvo simples quanto o boosting padrão. O CatBoost treina em CPUs e GPUs, oferece interfaces para Python, R e linha de comando, e lida com classificação, regressão e ranqueamento.

Como o CatBoost codifica recursos categóricos#

A codificação one-hot cria uma coluna por categoria, o que se torna impraticável para um recurso com milhares de valores, como o ID de um comerciante ou usuário. A codificação por alvo substitui cada categoria pela média dos rótulos de suas linhas. Ela é compacta, mas vaza a resposta: o próprio rótulo de uma linha faz parte do número que a descreve, então o modelo aprende um atalho que falha com dados novos. Isso é uma forma de vazamento de dados que aparece como sobreajuste e é mais grave para categorias raras.

As estatísticas de alvo ordenadas do CatBoost resolvem esse problema com uma permutação aleatória das linhas de treinamento. A categoria de cada linha é codificada apenas com os rótulos das linhas que a precedem na permutação, com suavização em direção a um valor prévio, de modo que nenhuma linha veja seu próprio rótulo. O CatBoost repete o processo em várias permutações, aplica codificação one-hot a recursos com pouquíssimos valores distintos e cria combinações de recursos categóricos, como cidade combinada com tipo de dispositivo, de forma gulosa durante o treinamento.

No pacote CatBoost para Python, as colunas categóricas são passadas pelo nome por meio de cat_features. Este exemplo atribui a cada um dos 50 planos de assinatura uma taxa de cancelamento oculta e verifica se o modelo consegue recuperar as taxas a partir dos nomes brutos dos planos:

import numpy as np
import pandas as pd
from catboost import CatBoostClassifier

# Synthetic churn data: each of 50 plans has its own hidden churn rate
rng = np.random.default_rng(0)
rates = rng.uniform(0.05, 0.6, size=50)
plan_ids = rng.integers(0, 50, size=5000)
X = pd.DataFrame({"plan": [f"plan_{i}" for i in plan_ids], "tenure_months": rng.integers(1, 60, size=5000)})
y = rng.random(5000) < rates[plan_ids]

# Raw strings go in directly; CatBoost encodes them with ordered target statistics
model = CatBoostClassifier(iterations=200, depth=4, verbose=0, random_seed=0)
model.fit(X, y, cat_features=["plan"])

# Compare true and predicted churn for the safest and riskiest plans
lo, hi = rates.argmin(), rates.argmax()
probe = pd.DataFrame({"plan": [f"plan_{lo}", f"plan_{hi}"], "tenure_months": [30, 30]})
print("True churn rates:     ", rates[[lo, hi]].round(2))
print("Predicted churn rates:", model.predict_proba(probe)[:, 1].round(2))

O script exibe taxas reais de 0,05 e 0,60 e taxas previstas de 0,06 e 0,59. O modelo recuperou a taxa de cancelamento de cada plano a partir da coluna de strings original, com apenas cerca de 100 linhas de treinamento por plano.

Boosting ordenado e árvores simétricas#

O gradient boosting padrão calcula os alvos de cada nova árvore — os gradientes da perda — nas mesmas linhas usadas para ajustar as árvores anteriores, o que distorce esses gradientes. Os autores do CatBoost chamam esse efeito de deslocamento da previsão. O boosting ordenado aplica novamente o truque da permutação: o gradiente de cada linha vem de um modelo treinado apenas com linhas anteriores na permutação. É uma opção de treinamento, boosting_type="Ordered", que costuma melhorar a qualidade em conjuntos de dados pequenos, à custa da velocidade. O padrão na CPU é o esquema clássico "Plain", e o treinamento na GPU usa por padrão "Ordered" para conjuntos de dados com até 50.000 linhas, exceto no modo multiclasse.

Por padrão, o CatBoost cria árvores simétricas, ou oblivious, nas quais cada nó na mesma profundidade usa a mesma condição de divisão. Portanto, uma árvore de profundidade 6 — o padrão — consiste apenas em seis testes de sim ou não, cujas respostas formam um índice de 6 bits para acessar uma entre 64 folhas. Isso acelera a previsão e limita a complexidade de cada árvore, uma forma de regularização. O parâmetro grow_policy alterna para o crescimento por profundidade ou por folhas quando um conjunto de dados exige árvores menos restritas.

Aplicações no mundo real#

  • Risco de crédito: instituições de crédito combinam dados categóricos de candidatos, como ocupação, região e finalidade do empréstimo, com valores numéricos de renda e dívidas para prever inadimplência, sem aplicar codificação one-hot a centenas de códigos de ocupação.
  • Ranqueamento e recomendações: o CatBoost oferece funções de perda para ranqueamento, como YetiRank, usadas para ordenar resultados de busca ou produtos pela relevância prevista, com base em recursos de usuário, item e contexto em um sistema de recomendação.
  • Avaliação de imóveis: um detector YOLO26 treinado sob medida pode contar comodidades, como piscinas ou painéis solares, em fotos de anúncios; essas contagens entram em um modelo de preços do CatBoost como colunas numéricas, junto com colunas categóricas, como bairro e tipo de imóvel.

CatBoost vs. XGBoost e LightGBM#

As três bibliotecas criam um ensemble de árvores sequencialmente, cada uma corrigindo os erros das árvores anteriores, o que as diferencia de uma floresta aleatória e de suas árvores treinadas de forma independente.

  • XGBoost: por padrão, cria árvores nível por nível e adiciona regularização L1 e L2 ao objetivo. O suporte nativo a categorias chegou em versões posteriores, e muitos pipelines ainda codificam as categorias antes do treinamento.
  • LightGBM: cria árvores folha por folha, dividindo a folha que mais reduz a perda, e agrupa os recursos em histogramas, o que proporciona velocidade em grandes conjuntos de dados. Também aceita nativamente colunas categóricas codificadas por inteiros.
  • CatBoost: cria árvores simétricas, codifica categorias com estatísticas de alvo ordenadas e oferece bons resultados sem ajuste de hiperparâmetros. Suas configurações padrão são 1.000 árvores de profundidade 6, com a taxa de aprendizado escolhida automaticamente com base no número de iterações para os objetivos de perda logarítmica, multiclasse e RMSE.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina