Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

CatBoost

CatBoost es una biblioteca de boosting por gradiente de código abierto de Yandex que codifica las características categóricas mediante estadísticas ordenadas del objetivo y construye árboles simétricos.

CatBoost es una biblioteca de código abierto de aumento de gradiente para árboles de decisión, desarrollada por Yandex y publicada en 2017. Su nombre procede de «aumento categórico»: acepta columnas categóricas, como la ciudad, el identificador del producto o el tipo de dispositivo, en forma de cadenas sin procesar y las convierte internamente en números, por lo que los datos tabulares no necesitan codificación manual one-hot ni codificación del objetivo antes del entrenamiento. Dos ideas de su artículo de NeurIPS de 2018, las estadísticas ordenadas del objetivo y el aumento ordenado, evitan que cada fila de entrenamiento aporte su propia etiqueta a los números que se usan para ajustarla; esa filtración sesga tanto la codificación simple del objetivo como el aumento estándar. CatBoost se entrena en CPU y GPU, ofrece interfaces para Python, R y la línea de comandos, y permite clasificación, regresión y clasificación por orden.

Cómo codifica CatBoost las características categóricas#

La codificación one-hot crea una columna por categoría, lo que resulta poco manejable para características con miles de valores, como el identificador de un comercio o de un usuario. La codificación del objetivo sustituye cada categoría por la etiqueta media de sus filas. Es compacta, pero filtra la respuesta: la etiqueta de una fila forma parte del número que la describe, así que el modelo aprende un atajo que falla con datos nuevos. Se trata de una forma de filtración de datos que se manifiesta como sobreajuste, sobre todo en las categorías poco frecuentes.

Las estadísticas ordenadas del objetivo de CatBoost resuelven este problema mediante una permutación aleatoria de las filas de entrenamiento. La categoría de cada fila se codifica usando solo las etiquetas de las filas que la preceden en la permutación, con suavizado hacia un valor previo, de modo que ninguna fila llega a ver su propia etiqueta. CatBoost repite el proceso con varias permutaciones, aplica codificación one-hot a las características con muy pocos valores distintos y construye de forma codiciosa combinaciones de características categóricas —por ejemplo, ciudad y tipo de dispositivo— como nuevas características durante el entrenamiento.

En el paquete de CatBoost para Python, las columnas categóricas se indican por nombre mediante cat_features. En este ejemplo, cada uno de 50 planes de suscripción tiene una tasa de cancelación propia que no se muestra, y se comprueba si el modelo recupera las tasas a partir de los nombres originales de los planes:

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))

El script imprime tasas reales de 0.05 y 0.60, y tasas predichas de 0.06 y 0.59. El modelo recuperó la tasa de cancelación de cada plan a partir de la columna de cadenas original, con solo unas 100 filas de entrenamiento por plan.

Aumento ordenado y árboles simétricos#

El aumento de gradiente estándar calcula los objetivos de cada nuevo árbol —los gradientes de la función de pérdida— con las mismas filas con las que se ajustaron los árboles anteriores, lo que sesga esos gradientes; los autores de CatBoost llaman a este efecto desplazamiento de predicción. El aumento ordenado vuelve a aplicar el truco de la permutación: el gradiente de cada fila procede de un modelo entrenado únicamente con filas anteriores en la permutación. Es una opción de entrenamiento, boosting_type="Ordered", que suele mejorar la calidad en conjuntos de datos pequeños a costa de la velocidad. La opción predeterminada en CPU es el método clásico "Plain", y el entrenamiento en GPU usa "Ordered" de forma predeterminada en conjuntos de hasta 50 000 filas, salvo en el modo multiclase.

De forma predeterminada, CatBoost crea árboles simétricos, u oblivious, en los que todos los nodos de una misma profundidad usan la misma condición de división. Por tanto, un árbol de profundidad 6 —el valor predeterminado— consta de seis pruebas de sí o no cuyas respuestas forman un índice de 6 bits para acceder a 64 hojas. Esto agiliza la predicción y limita la complejidad de cada árbol, lo que constituye una forma de regularización. El parámetro grow_policy permite cambiar al crecimiento por niveles o por hojas cuando un conjunto de datos necesita árboles menos restringidos.

Aplicaciones en el mundo real#

  • Riesgo crediticio: Los prestamistas combinan campos categóricos de los solicitantes, como la profesión, la región y el propósito del préstamo, con cifras numéricas de ingresos y deudas para predecir impagos, sin aplicar codificación one-hot a cientos de códigos de profesión.
  • Clasificación por orden y recomendaciones: CatBoost ofrece funciones de pérdida para clasificación por orden, como YetiRank, que se usa para ordenar resultados de búsqueda o productos según la relevancia predicha a partir de características de usuario, artículo y contexto en un sistema de recomendación.
  • Valoración de inmuebles: Un detector YOLO26 entrenado a medida puede contar elementos como piscinas o paneles solares en las fotos de los anuncios, y esos recuentos se incorporan a un modelo de precios de CatBoost como columnas numéricas, junto a las categóricas, como el barrio y el tipo de inmueble.

CatBoost frente a XGBoost y LightGBM#

Las tres bibliotecas construyen secuencialmente un conjunto de modelos de árboles; cada árbol corrige los errores de los anteriores. Esto las diferencia de los bosques aleatorios, cuyos árboles se entrenan de forma independiente.

  • XGBoost: De forma predeterminada, construye árboles nivel por nivel y añade regularización L1 y L2 a su función objetivo. Las versiones posteriores incorporaron compatibilidad nativa con variables categóricas, aunque muchas canalizaciones siguen codificando las categorías antes del entrenamiento.
  • LightGBM: Construye árboles por hojas y divide la hoja que más reduce la pérdida; además, agrupa las características en histogramas, lo que le permite ser rápido con conjuntos de datos grandes. También acepta de forma nativa columnas categóricas codificadas como enteros.
  • CatBoost: Construye árboles simétricos, codifica las categorías mediante estadísticas ordenadas del objetivo y ofrece buenos resultados sin necesidad de ajustar hiperparámetros. De forma predeterminada, usa 1000 árboles de profundidad 6 y elige automáticamente la tasa de aprendizaje según el número de iteraciones para las funciones objetivo de pérdida logarítmica, multiclase y RMSE.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático