Головна▸Статті▸Data-Centric AI and Dataset Quality

Основи Feature Engineering

Практичні патерни feature engineering - трансформації, стратегії кодування, темпоральні ознаки та дебаг типових проблем.

mysimulator teamОновлено 2026-01≈ 6 хв читання▶ Open the simulation

Feature engineering - це місце, де створюється основна цінність ML. Проста модель з відмінними ознаками перемагає складну модель з поганими ознаками. Це робота, яка реально рухає метрики - трансформація сирих даних у сигнали, з яких моделі можуть навчатись.

Де використовується

Кожна ML-система покладається на feature engineering:

Найкращі ML-команди витрачають 60-80% часу на ознаки, не на моделі.

Типові дані

Сирі дані до feature engineering:

Джерело Формат Приклади
Транзакційні Event logs Покупки, кліки, логіни
Профілі користувачів Key-value Демографія, преференції, налаштування
Часові ряди Послідовні Ціни, показники сенсорів, метрики
Текст Неструктурований Відгуки, повідомлення, описи
Категоріальні Коди Категорії продуктів, регіони, типи пристроїв

Feature engineering трансформує це у формат для моделі: - Числові ознаки масштабовані належним чином - Категоріальні ознаки закодовані - Пропущені значення оброблені - Темпоральні патерни витягнуті - Взаємодії захоплені

Що робимо на практиці

  1. Зрозуміти бізнес-проблему - Який сигнал допоміг би передбачити target?
  2. Дослідити сирі дані - Що доступно, яка якість, що відсутнє?
  3. Визначити точку прогнозу - Яка інформація доступна на момент прогнозу?
  4. Витягнути базові ознаки - Прямі маппінги з сирих даних
  5. Створити агрегації - Суми, кількості, середні по часових вікнах
  6. Побудувати ratio features - Поточне vs історичне, entity vs популяція
  7. Закодувати категорії - Обрати кодування на основі кардинальності та моделі
  8. Обробити пропуски - Імпутація або індикаторні ознаки
  9. Валідувати якість ознак - Перевірити розподіли, кореляції, leakage
  10. Протестувати в продакшні - Переконатись, що ознаки обчислюються однаково при серінгу

Спочатку Baseline

Почніть з найпростішого набору ознак, що схоплює проблему:

  1. Прямі маппінги: Числові колонки as-is, one-hot encoded категорії
  2. Базові агрегації: Count, sum, mean ключових подій
  3. Recency features: Днів з останньої події
  4. Прості ratio: Цей період vs минулий період

Цей baseline: - Швидко встановлює мінімальну планку продуктивності - Рано виявляє проблеми якості даних - Дає інтерпретовану відправну точку - Дозволяє швидку ітерацію

Додавайте складність лише коли продуктивність baseline виходить на плато.

Типові патерни та коли їх обирати

Числові трансформації

Патерн Коли використовувати Приклад
Стандартизація Лінійні моделі, нейромережі (x - mean) / std
Min-max scaling Обмежені ознаки, нейромережі (x - min) / (max - min)
Log transform Правоскошені розподіли log(x + 1)
Binning Нелінійні залежності Вікові групи: 18-25, 26-35, ...
Winsorization Обробка викидів Обрізати на 1-му та 99-му перцентилі

Кодування категорій

Патерн Коли використовувати Кардинальність
One-hot encoding Tree моделі, низька кардинальність < 20 категорій
Target encoding Висока кардинальність, табличні моделі 20-1000 категорій
Frequency encoding Висока кардинальність, просто Будь-яка
Embedding Нейромережі, дуже висока кардинальність 1000+ категорій
Hash encoding Обмеження пам'яті, невідомі категорії Будь-яка

Темпоральні ознаки

Патерн Приклад Use Case
Rolling aggregations Сума покупок за останні 30 днів Виявлення трендів
Time since event Днів з останнього логіну Recency сигнали
Cyclical encoding sin/cos години, дня тижня Періодичні патерни
Lag features Значення 1, 7, 30 днів тому Часові ряди
Trend features Нахил по часовому вікну Напрямок змін

Ознаки взаємодії

Патерн Приклад Коли корисно
Множення Feature A * Feature B Відомі взаємодії
Ratio Feature A / Feature B Відносні порівняння
Різниця Feature A - Feature B Зміни, дельти
Поліноміальні Feature A^2, A^3 Нелінійні залежності

Патерни Feature Engineering

Фреймворк агрегацій:

Для кожної entity (user, product, session):
  Для кожного типу події (purchase, click, view):
    Для кожного часового вікна (1d, 7d, 30d, 90d):
      Обчислити: count, sum, mean, max, min, std

Поведінкові сигнали: - Консистентність: std активності по часових періодах - Тренд: порівняння недавньої vs історичної поведінки - Різноманітність: кількість унікальних категорій взаємодії - Інтенсивність: rate активності на одиницю часу

Текстові ознаки: - Довжина: кількість символів, кількість слів - Патерни: regex matches, наявність ключових слів - Embeddings: TF-IDF, sentence transformers

Стратегії для пропущених значень: - Імпутувати медіаною/модою для випадкових пропусків - Імпутувати доменно-специфічним значенням (наприклад, 0 для count features) - Створити бінарний індикатор: is_feature_missing - Залишити as-is для tree моделей, що обробляють пропуски

Оцінка та метрики

Метрики якості ознак:

Метрика Що вимірює Ціль
Coverage % рядків з non-null значенням > 80% для критичних ознак
Cardinality Унікальні значення Відповідає вибору кодування
Кореляція з target Прогнозна сила Вище краще, але перевірте на leakage
Стабільність Консистентність розподілу в часі Низький дрифт
Вартість обчислення Час/ресурси на генерацію В межах бюджету латентності

Підводні камені: - Feature leakage: Використання інформації з часу після прогнозу - Target leakage: Ознака кодує label прямо або опосередковано - Distribution shift: Ознака обчислюється по-різному в тренуванні vs серінгу - High cardinality surprises: Нові категорії в продакшні

Режими відмови та чеклист дебагу

Продакшн-чеклист

Розробка ознак: - [ ] Визначення ознаки задокументовано - [ ] Unit tests для логіки ознаки - [ ] Протестовано на holdout даних - [ ] Перевірено на leakage - [ ] Вартість обчислення прийнятна

Деплоймент ознак: - [ ] Однакова логіка в тренуванні та серінгу - [ ] Моніторинг feature drift - [ ] Алертинг на NULL rates - [ ] Стратегія backfill визначена - [ ] Версіонування на місці

Підтримка ознак: - [ ] Регулярні аудити якості - [ ] Процес deprecation для невикористаних ознак - [ ] Документація оновлена - [ ] Залежності відстежуються

Інструменти та стек

Категорія Інструменти
Обчислення ознак pandas, Polars, Spark, dbt
Feature stores Feast, Tecton, Vertex AI Feature Store
Валідація Great Expectations, Pandera
Візуалізація matplotlib, seaborn, Plotly
Трекінг експериментів MLflow, Weights & Biases

Приклад міні-кейсу

Сценарій: Покращити модель прогнозу відтоку для підписного сервісу.

Поточний стан: Модель використовує 12 ознак (демографія, тип плану, tenure). AUC 0.68.

Спринт feature engineering: 1. Engagement features: Сесії за 7/30/90 днів, кількість використання функцій 2. Trend features: Сесії цього тижня vs 4-тижневе середнє 3. Support signals: Відкриті тікети, час вирішення, sentiment 4. Payment features: Невдалі платежі, зміни способу оплати 5. Recency features: Днів з останнього логіну, останнього використання функції

Результат: 45 нових ознак. Після selection, 23 ознаки в фінальній моделі. AUC покращився до 0.79.

Ключовий інсайт: Trend features (зниження engagement) були найбільш прогнозними, не статичні ознаки.

Пов'язані сторінки

Додаткове читання

Спробуйте наживо

Дослідіть пов'язану модель на практиці: відкрийте Feature Engineering: Building Predictive Models і змінюйте параметри під час роботи. Усе лишається у вашому браузері.

▶ Відкрити симуляцію Feature Engineering: Building Predictive Models

Що ви знайшли?

Додати кроки відтворення (опційно)