Retour au Blog
Machine Learning 18 février 2025 5 min de lecture

L'arme secrète de CatBoost : l'encodage target ordonné expliqué

Comment CatBoost gère les features catégorielles sans fuite de données avec l'encodage target ordonné.

Le problème de fuite de données

Le target encoding naïf laisse fuiter l'information future : en encodant une catégorie par la moyenne de sa cible, vous utilisez l'information de la même ligne pour s'encoder elle-même.

La solution de CatBoost : ordered target encoding

CatBoost traite les lignes dans un ordre aléatoire. Pour encoder la ligne i, il n'utilise que les statistiques calculées sur les lignes 0..i-1. Cela empêche la fuite par construction.

Implémentation

from catboost import CatBoostClassifier

model = CatBoostClassifier(
    cat_features=['city', 'device_type', 'email_domain'],
    iterations=1000,
    learning_rate=0.05,
    depth=6,
)
model.fit(X_train, y_train)

Aucun encodage manuel nécessaire — passez directement les chaînes brutes.

CatBoostCategorical FeaturesTarget EncodingGradient Boosting
O

Ossama Elhakki

Ingénieur IA & Systèmes ML — Maroc