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.