Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

CatBoost

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.

Avantages fondamentaux et mécanisme

CatBoost se distingue des autres méthodes d'ensemble par plusieurs choix architecturaux qui privilégient la précision et la facilité d'utilisation.

  • Prise en charge native des catégories: l'algorithme utilise une technique appelée « statistiques cibles ordonnées » pour convertir les valeurs catégorielles en nombres pendant l'entraînement. Cela permet d'éviter les fuites de cibles souvent observées avec les méthodes d'encodage standard et de préserver l'intégrité du processus de validation.
  • Boosting ordonné: les méthodes standard de gradient boosting peuvent souffrir d'un décalage de prédiction, un type de biais dans l'IA. CatBoost résout ce problème en utilisant une approche basée sur la permutation pour entraîner le modèle, garantissant ainsi que celui-ci ne s'adapte pas de manière excessive à la distribution spécifique des données d'entraînement .
  • Arbres symétriques: contrairement à de nombreuses autres bibliothèques de boosting qui développent des arbres en profondeur ou en largeur, CatBoost construit des arbres symétriques (équilibrés). Cette structure permet des vitesses d'inférence extrêmement rapides, ce qui est crucial pour les applications d'inférence en temps réel.

CatBoost vs. XGBoost et LightGBM

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.

  • XGBoost: une bibliothèque très flexible et largement utilisée, connue pour ses performances dans les concours de science des données. Elle nécessite généralement un réglage minutieux des hyperparamètres et un encodage manuel des variables catégorielles pour atteindre des performances optimales.
  • LightGBM: cette bibliothèque utilise une stratégie de croissance feuille par feuille, ce qui la rend exceptionnellement rapide pour l'entraînement sur des ensembles de données massifs. Cependant, sans une régularisation minutieuse, elle peut être sujette à un surajustement sur des ensembles de données plus petits par rapport aux arbres symétriques stables de CatBoost.
  • CatBoost: offre souvent la meilleure précision « prête à l'emploi » avec les paramètres par défaut. Il est généralement préféré lorsque les ensembles de données contiennent un nombre important de caractéristiques catégorielles, ce qui réduit le besoin d'un ingénierie approfondie des caractéristiques.

Applications concrètes

La robustesse de CatBoost en fait un outil polyvalent dans divers secteurs qui traitent des données structurées.

  1. Évaluation des risques financiers: les banques et les entreprises de technologie financière utilisent CatBoost pour évaluer l'éligibilité aux prêts et prédire les défauts de paiement. Le modèle peut intégrer de manière transparente divers types de données, telles que la profession du demandeur (catégorielle) et son niveau de revenu (numérique), afin de créer des profils de risque précis. Cette capacité est une pierre angulaire de l'IA moderne dans le domaine financier.
  2. Recommandations en matière de commerce électronique: les détaillants en ligne utilisent CatBoost pour alimenter des systèmes de recommandation personnalisés. En analysant les journaux de comportement des utilisateurs, les catégories de produits et l'historique des achats, l'algorithme prédit la probabilité qu'un utilisateur clique sur un article ou l'achète, contribuant ainsi directement à l' optimisation de l'IA dans le commerce de détail.

Intégration avec la vision par ordinateur

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

Rejoindre la communauté Ultralytics

Rejoignez le futur de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

Rejoindre maintenant