Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

CatBoost

CatBoost est la bibliothèque open source de gradient boosting de Yandex. Elle encode les caractéristiques catégorielles à l’aide de statistiques ordonnées sur la cible et construit des arbres symétriques.

CatBoost est une bibliothèque libre de boosting par gradient pour les arbres de décision, développée par Yandex et publiée en 2017. Son nom vient de « categorical boosting » : elle accepte les colonnes catégorielles, comme la ville, l’identifiant de produit ou le type d’appareil, sous forme de chaînes brutes et les convertit elle-même en nombres. Les données tabulaires n’ont donc pas besoin d’encodage manuel one-hot ou par cible avant l’entraînement. Deux idées présentées dans son article NeurIPS 2018, les statistiques ordonnées de la cible et le boosting ordonné, empêchent que l’étiquette d’une ligne d’entraînement soit utilisée pour ajuster les nombres qui la représentent ; cette fuite biaise aussi bien l’encodage par cible classique que le boosting standard. CatBoost s’exécute sur CPU et GPU, propose des interfaces Python, R et en ligne de commande, et gère la classification, la régression et le classement.

Comment CatBoost encode les caractéristiques catégorielles#

L’encodage one-hot crée une colonne par catégorie, ce qui devient peu pratique pour une caractéristique comportant des milliers de valeurs, comme un identifiant de commerçant ou d’utilisateur. L’encodage par cible remplace chaque catégorie par la moyenne des étiquettes de ses lignes. Cette méthode est compacte, mais elle divulgue la réponse : l’étiquette d’une ligne entre dans le nombre qui la décrit, si bien que le modèle apprend un raccourci qui échoue sur de nouvelles données. C’est une forme de fuite de données qui se manifeste par du surapprentissage, surtout pour les catégories rares.

Les statistiques ordonnées de la cible de CatBoost corrigent ce problème grâce à une permutation aléatoire des lignes d’entraînement. La catégorie de chaque ligne est encodée à partir des étiquettes des seules lignes qui la précèdent dans la permutation, avec un lissage vers une valeur a priori ; aucune ligne ne voit donc jamais sa propre étiquette. CatBoost répète l’opération sur plusieurs permutations, encode en one-hot les caractéristiques ayant très peu de valeurs distinctes et construit gloutonnement de nouvelles caractéristiques combinant des caractéristiques catégorielles, comme la ville et le type d’appareil, pendant l’entraînement.

Dans le package Python CatBoost, les colonnes catégorielles sont indiquées par leur nom via cat_features. Cet exemple attribue à chacun de 50 forfaits d’abonnement un taux de résiliation masqué et vérifie si le modèle retrouve ces taux à partir des noms bruts des forfaits :

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

Le script affiche des taux réels de 0.05 et 0.60, ainsi que des taux prédits de 0.06 et 0.59. Le modèle a retrouvé le taux de résiliation de chaque forfait à partir de la colonne de chaînes brutes, avec seulement une centaine de lignes d’entraînement par forfait.

Boosting ordonné et arbres symétriques#

Le boosting par gradient standard calcule les cibles de chaque nouvel arbre — les gradients de la fonction de perte — sur les mêmes lignes que celles utilisées pour ajuster les arbres précédents, ce qui biaise ces gradients. Les auteurs de CatBoost appellent cet effet le décalage de prédiction. Le boosting ordonné réutilise l’astuce de la permutation : le gradient de chaque ligne provient d’un modèle entraîné uniquement sur les lignes qui la précèdent dans la permutation. Il s’agit d’une option d’entraînement, boosting_type="Ordered", qui améliore généralement la qualité sur les petits jeux de données, au prix d’une vitesse réduite. Sur CPU, la valeur par défaut est le schéma classique "Plain" ; sur GPU, l’entraînement utilise par défaut "Ordered" pour les jeux de données de 50 000 lignes ou moins, sauf en mode multiclasse.

Par défaut, CatBoost construit des arbres symétriques, ou oblivious, dans lesquels chaque nœud d’une même profondeur utilise la même condition de séparation. Un arbre de profondeur 6, la valeur par défaut, se résume donc à six tests oui-non dont les réponses forment un indice de 6 bits vers 64 feuilles. Cela accélère la prédiction et limite la complexité de chaque arbre, ce qui constitue une forme de régularisation. Le paramètre grow_policy permet de passer à une croissance par profondeur ou par feuille lorsque le jeu de données nécessite des arbres moins contraints.

Applications concrètes#

  • Risque de crédit : les prêteurs combinent des caractéristiques catégorielles du demandeur, comme la profession, la région et l’objet du prêt, avec des valeurs numériques de revenu et d’endettement pour prédire le défaut de paiement, sans encoder en one-hot des centaines de codes de profession.
  • Classement et recommandations : CatBoost propose des fonctions de perte de classement comme YetiRank, utilisées pour ordonner les résultats de recherche ou les produits selon leur pertinence prédite, à partir des caractéristiques de l’utilisateur, de l’article et du contexte dans un système de recommandation.
  • Évaluation immobilière : un détecteur YOLO26 entraîné sur mesure peut compter les équipements, comme les piscines ou les panneaux solaires, dans les photos d’annonces. Ces nombres sont ensuite intégrés comme colonnes numériques dans un modèle de prix CatBoost, à côté de colonnes catégorielles comme le quartier et le type de bien.

CatBoost comparé à XGBoost et LightGBM#

Les trois bibliothèques construisent séquentiellement un ensemble d’arbres, chaque arbre corrigeant les erreurs des précédents. Elles se distinguent ainsi de la forêt aléatoire, dont les arbres sont entraînés indépendamment.

  • XGBoost : construit les arbres niveau par niveau par défaut et ajoute une régularisation L1 et L2 à son objectif. La prise en charge native des catégories est arrivée dans des versions ultérieures, et de nombreux pipelines encodent encore les catégories avant l’entraînement.
  • LightGBM : construit les arbres feuille par feuille, en divisant celle qui réduit le plus la fonction de perte, et répartit les caractéristiques en histogrammes, ce qui accélère le traitement des grands jeux de données. Il accepte également nativement les colonnes catégorielles encodées en entiers.
  • CatBoost : construit des arbres symétriques, encode les catégories à l’aide de statistiques ordonnées de la cible et donne de bons résultats sans réglage des hyperparamètres. Ses paramètres par défaut sont de 1 000 arbres de profondeur 6, avec un taux d’apprentissage choisi automatiquement en fonction du nombre d’itérations pour les fonctions de perte log, multiclasse et RMSE.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique