Что такое Feature Engineering
Feature engineering — это преобразование сырых данных в числовые представления, пригодные для обучения модели. Модель машинного обучения не умеет работать с текстом «последний визит — позавчера», но отлично работает с числом 2 (дней с последнего визита).
В e-commerce типичный набор сырых данных — это логи кликов, транзакции, атрибуты товаров и профили пользователей. Инженер признаков превращает их в информативные переменные:
Сырые данные → Признаки
─────────────────────────────────────────
Лог кликов → просмотры/нед, CTR по категориям
История покупок → R (recency), F (frequency), M (monetary)
Атрибуты товара → категория (one-hot), бренд, ценовой бин
Сессионные данные → глубина просмотра, время на странице
Виды преобразований
Агрегация поведенческих данных
Самый важный класс признаков для рекомендаций — агрегаты поведения с временным весом. Событие «купил 14 дней назад» значит больше, чем «купил полгода назад». Типичный паттерн — скользящие окна (7 дней, 30 дней, 90 дней):
| Признак | Описание |
|---|---|
| purchase_cnt_30d | Количество покупок за 30 дней |
| avg_order_value_90d | Средний чек за 90 дней |
| days_since_last_visit | Давность последнего визита |
| top_category_share | Доля топ-категории в покупках |
Кодирование категориальных переменных
Категориальные атрибуты (бренд, категория) нельзя передать в модель напрямую. Основные подходы:
— One-hot encoding — для признаков с небольшой кардинальностью (тип устройства, пол)
— Target encoding — среднее значение целевой метрики по категории (подходит для брендов, категорий с тысячами значений)
— Embeddings — для сущностей с очень высокой кардинальностью (товарные ID, пользователи)
Feature Engineering vs автоматические подходы
Deep learning на неструктурированных данных (тексты, изображения) самостоятельно извлекает признаки. На табличных структурированных данных ручной feature engineering по-прежнему критичен.
Совет: Всегда проверяй feature importance после обучения. В реальных e-commerce задачах 80% предсказательной силы даёт 20% признаков — остальные добавляют шум и замедляют инференс.
Типичные ошибки
- Data leakage: признак включает информацию из будущего (например, «куплено» в момент предсказания покупки)
- Слишком высокая кардинальность без кодирования: user_id как категориальный признак без эмбеддингов
- Игнорирование временной динамики: усреднение всей истории вместо взвешенного по давности