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.