Sobes.tech
Middle — Senior

Wat is target encoding voor categorische kenmerken in de tijd en hoe voorkom je leakage?

sobes.tech AI

Antwoord van AI

Target encoding voor categorische kenmerken in tijdreeksen is een methode waarbij categorische waarden worden vervangen door numerieke waarden, gebaseerd op de statistiek van de doelvariabele (bijvoorbeeld het gemiddelde van de target voor elke categorie). In de context van tijdsgegevens is het belangrijk om informatielekken (leakage) te voorkomen, waarbij tijdens de codering gegevens uit de toekomst worden gebruikt ten opzichte van het huidige tijdstip.

Om leakage te voorkomen, wordt bij het berekenen van target encoding voor elk tijdstip alleen gebruik gemaakt van de informatie die tot dat moment beschikbaar is. Bijvoorbeeld, voor elke categorie wordt het gemiddelde van de target berekend over alle eerdere observaties, zonder de huidige of toekomstige observaties mee te nemen. Dit kan worden geïmplementeerd met behulp van cumulatieve gemiddelden of glijdende vensters met vertraging.

Voorbeeld in 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')

# Cumulatief gemiddelde van de target per categorie, verschoven met 1 om de huidige target niet te gebruiken

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

print(df)

Op deze manier weerspiegelt target encoding historische statistieken zonder toekomstige informatielekken.