Sobes.tech
Middle — Senior

Qu'est-ce que le codage cible pour les caractéristiques catégorielles dans le temps et comment éviter la fuite?

sobes.tech IA

Réponse de l'IA

Le codage cible pour les caractéristiques catégoriques dans les séries temporelles est une méthode qui remplace les valeurs catégoriques par des nombres, basée sur la statistique de la variable cible (par exemple, la moyenne de la cible pour chaque catégorie). Dans le contexte des données temporelles, il est important d’éviter la fuite d’informations (leakage), lorsque lors du codage, des données du futur par rapport au point temporel actuel sont utilisées.

Pour éviter le leakage, lors du calcul du codage cible pour chaque point dans le temps, seules les informations disponibles avant ce point sont utilisées. Par exemple, pour chaque catégorie, on calcule la moyenne de la cible sur toutes les observations précédentes, sans inclure la observation courante ni les futures. Cela peut être réalisé à l’aide de moyennes cumulatives ou de fenêtres glissantes avec décalage.

Exemple en Python (pandas):

import pandas as pd

df = pd.DataFrame({
    'category': ['A', 'B', 'A', 'B', 'A'],
    'target': [1, 0, 1, 1, 0],
    'time': pd.date_range('2023-01-01', periods=5)
})

df = df.sort_values('time')

# Moyenne cumulative de la cible par catégorie, décalée de 1 pour ne pas utiliser la cible actuelle

df['target_enc'] = df.groupby('category')['target'].apply(lambda x: x.shift().expanding().mean())

print(df)

Ainsi, le codage cible reflète des statistiques historiques sans fuite d’informations futures.