Sobes.tech
Middle — Senior

Zamanla ilgili kategorik özellikler için hedef kodlama nedir ve sızıntıyı nasıl önleriz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Zaman serilerinde kategorik özellikler için hedef kodlama, kategorik değerleri sayısal değerlere dönüştüren ve hedef değişkenin istatistiğine dayanan bir yöntemdir (örneğin, her kategori için hedefin ortalaması). Zaman verileri bağlamında, kodlama sırasında gelecekteki verilerin kullanılması durumunda bilgi sızıntısını (leakage) önlemek önemlidir.

Leakage'ı önlemek için, her zaman diliminde hedef kodlaması hesaplanırken, sadece o noktaya kadar erişilebilir bilgiler kullanılır. Örneğin, her kategori için, mevcut ve gelecekteki veriler hariç olmak üzere, önceki tüm gözlemlerden hedefin ortalaması hesaplanır. Bu, kümülatif ortalamalar veya gecikmeli kayan pencereler kullanılarak gerçekleştirilebilir.

Python (pandas) ile örnek:

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

# Kategori başına hedefin kümülatif ortalaması, güncel hedef kullanılmaması için kaydırılmış

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

print(df)

Bu şekilde, hedef kodlama, gelecekteki bilgileri sızdırmadan tarihsel istatistikleri yansıtır.