Sobes.tech
Middle — Senior

Vaqt ichidagi kategoriyaviy xususiyatlar uchun target encoding nima va qanday qilib leakage dan qochish mumkin?

sobes.tech AI

AIdan javob

Zamgawa target dla kategorikalnih značajki u vremenskim nizama je metoda zamene kategorikalnih vrednosti numeričkim, zasnovana na statistici ciljne promenljive (npr. prosečna vrednost cilja za svaku kategoriju). U kontekstu vremenskih podataka, važno je izbegavati curenje informacija (leakage), kada se tokom kodiranja koriste podaci iz budućnosti u odnosu na trenutnu tačku vremena.

Da bi se izbegao leakage, prilikom računanja target encoding za svaku vremensku tačku koristi se samo dostupne informacije do te tačke. Na primer, za svaku kategoriju, računa se prosečna vrednost cilja za sve prethodne posmatranja, ne uključujući trenutnu i buduće. Ovo se može implementirati pomoću kumulativnih proseka ili kliznih prozora sa zakašnjenjem.

Primer u 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')

# Kumulativni prosek cilja po kategoriji, pomeren za 1 da ne koristi trenutni cilj

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

print(df)

Na ovaj način, target encoding odražava istorijske statistike bez curenja budućih informacija.