Что такое target encoding для категориальных признаков во времени и как избегать leakage?

В контексте временных данных важно избегать утечки информации (leakage), когда при кодировании используются данные из будущего относительно текущей точки времени.

Короткий ответ

Что ответить на собеседовании

Target encoding для категориальных признаков во временных рядах — это метод замены категориальных значений на числовые, основанный на статистике целевой переменной (например, среднее значение таргета для каждой категории). В контексте временных данных важно избегать утечки информации (leakage), когда при кодировании используются данные из будущего относительно текущей точки времени.

Подробный разбор

Ответ с пояснениями

Target encoding для категориальных признаков во временных рядах — это метод замены категориальных значений на числовые, основанный на статистике целевой переменной (например, среднее значение таргета для каждой категории). В контексте временных данных важно избегать утечки информации (leakage), когда при кодировании используются данные из будущего относительно текущей точки времени.

Чтобы избежать leakage, при вычислении target encoding для каждой временной точки используют только информацию, доступную до этой точки. Например, для каждой категории вычисляют среднее таргета на всех предыдущих наблюдениях, не включая текущую и будущие. Это можно реализовать с помощью кумулятивных средних или скользящих окон с задержкой.

Пример на 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')

# Кумулятивное среднее таргета по категории, сдвинутое на 1, чтобы не использовать текущий таргет

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

print(df)

Таким образом, target encoding отражает историческую статистику без утечки будущей информации.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее