Kas ir mērķa kodēšana laika kategoriskajām īpašībām un kā izvairīties no leakage?
sobes.tech AI
Atbilde no AI
Mērķa kodēšana kategoriskiem raksturlielumiem laika rindās ir metode, kas aizstāj kategoriskās vērtības ar skaitliskām, balstoties uz mērķa mainīgā statistiku (piemēram, katras kategorijas vidējo mērķa vērtību). Laika datu kontekstā ir svarīgi izvairīties no informācijas noplūdes (leakage), kad kodēšanas laikā tiek izmantoti dati no nākotnes attiecībā pret pašreizējo laika punktu.
Lai novērstu leakage, katram laika punktam tiek aprēķināta mērķa kodēšana, izmantojot tikai pieejamo informāciju līdz šim brīdim. Piemēram, katrai kategorijai tiek aprēķināta iepriekšējo novērojumu mērķa vidējā vērtība, neiekļaujot pašreizējo vai nākotnes novērojumus. To var īstenot, izmantojot kumulatīvos vidējos vai slīdošos logus ar aizkavi.
Python (pandas) piemērs:
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')
# Kumulatīvais mērķa vidējais pēc kategorijas, pārvietots par 1, lai neizmantotu pašreizējo mērķi
df['target_enc'] = df.groupby('category')['target'].apply(lambda x: x.shift().expanding().mean())
print(df)
Šādā veidā mērķa kodēšana atspoguļo vēsturisko statistiku bez nākotnes informācijas noplūdes.