Découvrez CatBoost, un puissant algorithme de gradient boosting pour les données catégorielles. Découvrez comment il améliore la modélisation prédictive en association avec Ultralytics pour les workflows d'IA.
CatBoost (Categorical Boosting) est un algorithme d'apprentissage automatique open source basé sur le boosting par gradient sur les arbres de décision. Développé par Yandex, il est conçu pour offrir des performances élevées avec une préparation minimale des données, et excelle particulièrement dans le traitement des données catégorielles, c'est-à-dire les variables qui représentent des groupes ou des étiquettes distincts plutôt que des valeurs numériques. Alors que les algorithmes traditionnels nécessitent souvent des techniques de prétraitement complexes telles que le codage one-hot pour convertir les catégories en nombres, CatBoost peut traiter ces caractéristiques directement pendant l'apprentissage. Cette capacité, combinée à sa capacité à réduire le surajustement grâce au boosting ordonné, en fait un choix robuste pour un large éventail de tâches de modélisation prédictive en science des données.
CatBoost se distingue des autres méthodes d'ensemble par plusieurs choix architecturaux qui privilégient la précision et la facilité d'utilisation.
CatBoost est souvent évalué par rapport à d'autres bibliothèques de boosters populaires. Bien qu'ils partagent le même cadre sous-jacent, ils ont des caractéristiques distinctes.
La robustesse de CatBoost en fait un outil polyvalent dans divers secteurs qui traitent des données structurées.
Bien que CatBoost soit principalement un outil destiné aux données tabulaires, il joue un rôle essentiel dans les workflows de modèles multimodaux où les données visuelles rencontrent les métadonnées structurées. Un workflow courant consiste à utiliser un modèle de vision par ordinateur pour extraire des caractéristiques à partir d'images puis à alimenter un classificateur CatBoost avec ces caractéristiques.
Par exemple, un système d'évaluation immobilière peut utiliser Ultralytics pour effectuer la détection d'objets sur des photos de propriétés, en comptant les équipements tels que les piscines ou les panneaux solaires. Le nombre de ces objets est ensuite transmis sous forme de caractéristiques numériques à un modèle CatBoost, avec les données relatives à l'emplacement et à la superficie, afin de prédire la valeur de la maison. Les développeurs peuvent gérer la composante visuelle de ces pipelines à l'aide de la Ultralytics , qui simplifie la gestion des ensembles de données et le déploiement des modèles.
L'exemple suivant montre comment charger un YOLO pré-entraîné pour extraire le nombre d'objets d'une image, qui pourrait ensuite servir de caractéristiques d'entrée pour un modèle CatBoost.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Run inference on an image
results = model("path/to/property_image.jpg")
# Extract class counts (e.g., counting 'cars' or 'pools')
# This dictionary can be converted to a feature vector for CatBoost
class_counts = {}
for result in results:
for cls in result.boxes.cls:
class_name = model.names[int(cls)]
class_counts[class_name] = class_counts.get(class_name, 0) + 1
print(f"Features for CatBoost: {class_counts}")