Перейти до змісту
Технологія

Feature Engineering: як перетворити сирі дані на цінні ознаки

1 липня 2026 р.·8 хв читання·Команда CodeNest
Зображення статті
## Чому feature engineering важливіший за вибір алгоритму Серед Data Scientists існує приказка: "краща модель на поганих ознаках програє простій моделі на хороших ознаках". Feature engineering — процес перетворення сирих даних на інформативні ознаки (features), які модель може ефективно використати — часто визначає успіх ML-проєкту більше, ніж вибір між XGBoost і нейронною мережею. Уявіть задачу прогнозування відтоку клієнтів. Сирі дані: дата реєстрації та дата останньої покупки. Сира різниця в днях — корисна ознака, але слабка. А ось "кількість днів від останньої покупки порівняно із середнім для цієї категорії клієнтів" — набагато потужніша ознака, яка враховує контекст. Саме таке перетворення і є feature engineering. ## Ключові техніки ### Encoding категоріальних змінних Більшість алгоритмів ML працюють з числовими даними. Категоріальні змінні (місто, тип товару, статус клієнта) потрібно перетворювати. **One-Hot Encoding** — кожна унікальна категорія стає окремою бінарною колонкою. Підходить для змінних з невеликою кількістю категорій (до 20–30). При великій кількості категорій викликає "прокляття розмірності". **Target Encoding** — замість dummy-змінних використовується середнє значення цільової змінної для кожної категорії. Ефективний для категорій з великою кількістю значень (міста, товарні категорії), але потребує обережності з витоком даних (data leakage). **Embedding для категорій** — навчені векторні представлення, аналогічні word2vec. Ефективні при глибокому навчанні та великій кількості категорій. ### Scaling числових ознак Алгоритми, що використовують градієнтний спуск або відстані (нейронні мережі, SVM, KNN), чутливі до масштабу ознак. Сума замовлення в гривнях і вік клієнта в роках — різні масштаби, що ускладнюють навчання. **StandardScaler** (Z-score normalization) — переводить дані до середнього 0 і стандартного відхилення 1. Підходить при нормальному розподілі ознак. **MinMaxScaler** — нормалізує у діапазон [0, 1]. Добре для рівномірного розподілу, чутливий до викидів. **RobustScaler** — використовує медіану та IQR замість середнього та стандартного відхилення. Стійкий до викидів — ідеальний для фінансових даних із аномальними транзакціями. Дерева рішень та їхні ансамблі (Random Forest, XGBoost) до масштабу нечутливі — scaling для них не потрібен. ### Feature Selection Не всі ознаки корисні. Зайві або корельовані ознаки ускладнюють навчання, збільшують час inference і можуть погіршити точність. **Filter Methods** — статистичні тести: кореляція Пірсона для числових, chi-squared для категоріальних. Швидко, але не враховує взаємодії між ознаками. **Wrapper Methods** — рекурсивне виключення ознак (RFE): модель навчається, найменш важливі ознаки видаляються, процес повторюється. Точніше, але обчислювально дорого. **Embedded Methods** — Lasso-регресія (L1) обнуляє коефіцієнти нерелевантних ознак автоматично. Feature importance в деревах рішень показує внесок кожної ознаки. ### Створення нових ознак Найбільший творчий аспект feature engineering — генерація нових ознак на основі предметного знання. Часові ознаки: з дати транзакції виводимо день тижня, місяць, квартал, чи є день святковим. Це розкриває сезонні патерни. Агрегаційні ознаки: середня сума замовлень клієнта за останні 30 днів, максимальна кількість товарів в одному замовленні, стандартне відхилення інтервалів між покупками. Взаємодія ознак: добуток або відношення двох ознак може нести більше інформації, ніж кожна окремо. Відношення суми замовлення до середнього для категорії клієнта — потужніша ознака для виявлення аномалій. ## Типові помилки **Data Leakage** — найнебезпечніша помилка. Ознака містить інформацію з майбутнього відносно моменту прогнозування. Класичний приклад: при прогнозуванні відтоку включити ознаку "кількість звернень до підтримки після відтоку". Модель буде ідеальною на тренуванні та нікчемною в реальності. **Scaling до розбивки на train/test.** Якщо нормалізувати всі дані до розбивки, параметри scaler "побачать" тестові дані — це форма data leakage. Завжди fit scaler тільки на train, transform — на train і test окремо. **Ігнорування пропущених значень.** Проста заміна пропусків середнім часто неоптимальна. Для деяких задач сам факт пропуску несе інформацію (клієнт не заповнив поле — можлива ознака незацікавленості). ## Автоматизований feature engineering Ручний feature engineering потребує глибокого знання домену і часу. Для прискорення існують інструменти автоматизованого пошуку ознак. **Featuretools** — open source бібліотека для автоматичної генерації ознак з реляційних даних. Генерує сотні агрегаційних та трансформаційних ознак автоматично — потім потрібна ручна селекція. **AutoML-рішення** (AutoSklearn, H2O AutoML) включають автоматичний feature engineering у загальний пайплайн підбору моделей. Автоматизований підхід генерує кандидати, але не замінює предметне знання. Найкращі результати — поєднання: автогенерація + відбір найважливіших + ручне доповнення доменними ознаками.

Стаття в розробці. Підпишіться щоб отримати сповіщення.

Написати нам →
#feature engineering#machine learning#дані
Поділитись:
КC

Команда CodeNest

Команда CodeNest

Практикуючий ML-інженер. Спеціалізується на побудові виробничих AI-систем для бізнесу.

🤖

Готові автоматизувати ваш бізнес?

Обговоримо ваш проєкт і запропонуємо оптимальне рішення. Безкоштовна консультація без зобов'язань.

Схожі статті

Впровадити ML у вашому бізнесі?

Від безкоштовної консультації до production-рішення. Обговоримо вашу задачу.