Habr AI→ original

Target Encoding sans fuite de données : LOO et K-Fold contre l’illusion de qualité

Le target encoding semble être un moyen simple de traiter les features catégorielles — mais une implémentation naïve laisse discrètement fuiter la cible dans…

Traité par IA depuis Habr AI ; édité par Hamidun News
Target Encoding sans fuite de données : LOO et K-Fold contre l’illusion de qualité
Source : Habr AI. Collage: Hamidun News.
◐ Écouter l'article

Le target encoding est une méthode populaire pour encoder les caractéristiques catégoriques, mais sa mise en œuvre naïve gonfle systématiquement les métriques et crée l'illusion d'un bon modèle qui s'effondre en production.

Qu'est-ce que le target encoding

Le target encoding remplace chaque valeur unique d'une caractéristique catégorique par la valeur moyenne de la variable cible sur tous les objets de cette catégorie. Pour la caractéristique « ville », chaque ville se voit attribuer la vente moyenne de tous les clients de celle-ci. Pour la caractéristique « navigateur » — la conversion moyenne sur toutes les sessions avec ce navigateur. Une colonne numérique au lieu de centaines de colonnes binaires.

La méthode est particulièrement attrayante avec une cardinalité élevée : au lieu de centaines de colonnes binaires du One-Hot Encoding, il reste une unique caractéristique numérique compacte qui porte directement l'information sur la relation catégorie-cible. C'est pourquoi le target encoding est activement utilisé dans les compétitions Kaggle et dans les pipelines ML industriels — le modèle reçoit une entrée informative qui s'entraîne rapidement et est facile à interpréter.

D'où vient la fuite

Le problème survient au moment du calcul de la moyenne. Une mise en œuvre naïve calcule l'encoding sur l'ensemble de l'échantillon d'entraînement — y compris l'objet actuel. En conséquence, la cible de cet objet participe au calcul de la caractéristique qui est ensuite fournie au modèle comme entrée lors de l'entraînement. Le modèle voit effectivement la variable cible de manière cachée — non directement, mais à travers cette caractéristique.

Les conséquences d'une telle fuite sont prévisibles :

  • Les métriques sur l'entraînement et la validation croisée semblent excellentes — le modèle « sait » la réponse grâce à la caractéristique
  • Le modèle mémorise le bruit et les valeurs aberrantes d'objets spécifiques, pas les vrais motifs
  • Sur le test ou en production, la qualité chute brusquement — là, l'encoding est calculé à partir de l'entraînement sans l'objet actuel
  • Plus le nombre d'objets dans la catégorie est petit — plus la fuite est forte : avec un objet, l'encoding égale simplement la cible
  • L'effet est invisible sous les vérifications de métriques standard, mais se manifeste dans les tests A/B en production

C'est un piège classique : tout semble parfait jusqu'au déploiement, après lequel le modèle s'avère inutile. De nombreuses solutions en compétition sur Kaggle ont montré une CV brillante pour exactement cette raison, mais n'ont pas survécu à la vérification finale.

LOO et K-Fold : comment calculer correctement

Les deux approches résolvent une tâche : lors du calcul de l'encoding, ne pas utiliser la valeur cible propre de l'objet.

Leave-One-Out (LOO) lors de l'encodage de chaque objet exclut sa valeur du calcul de la moyenne. Formellement : la moyenne de la cible sur tous les objets de la même catégorie, sauf l'objet actuel. La dépendance directe est rompue, l'information sur la distribution de la catégorie est préservée. La mise en œuvre est simple et déterministe.

L'encoding K-Fold fonctionne différemment. L'échantillon d'entraînement est divisé en K folds. Pour chaque fold, l'encoding est calculé uniquement à partir des K-1 folds restants, puis appliqué au fold « mis de côté ». Le schéma est analogue à la validation croisée : aucun objet ne participe au calcul de son propre encoding.

«

Une caractéristique honnête est celle qui est calculée lors de l'entraînement exactement comme elle sera calculée en production. »

Chaque méthode a ses nuances : LOO est déterministe et ajoute un minimum de bruit, mais avec de petites catégories (1-2 objets) reste vulnérable aux fuites résiduelles. K-Fold introduit du bruit de régularisation en raison de la division aléatoire — c'est une caractéristique utile, pas un bug. Pour les deux méthodes, une règle est importante : l'encoding pour l'échantillon de test est toujours calculé à partir de l'ensemble de l'échantillon d'entraînement en bloc, sans LOO ni K-Fold — c'est exactement ainsi qu'il fonctionnera en production.

Ce que cela signifie

Le target encoding reste un outil puissant pour travailler avec les caractéristiques catégoriques, mais nécessite une mise en œuvre soignée. L'approche naïve crée une illusion de qualité — de belles métriques qui ne survivront pas à la production. LOO et K-Fold fournissent des caractéristiques honnêtes : les chiffres de validation reflètent la vraie capacité de généralisation du modèle, pas un artefact de fuite de données. Si les métriques semblent trop bonnes — l'encoding devrait être vérifié en premier lieu.

ZK
Hamidun News
Actualités IA sans bruit. Sélection éditoriale quotidienne de plus de 400 sources. Produit de Zhemal Khamidun, Head of AI chez Alpina Digital.

Vous voulez cesser de lire sur l'IA et commencer à l'utiliser?

AI News est un fil d'actualité IA. Hamidun Academy vous apprend à utiliser l'IA dans votre travail.

Qu'en pensez-vous ?
Chargement des commentaires…