🎯 Основні концепції
Що таке Feature Engineering?
Інженерія ознак — це мистецтво та наука створення інформативних змінних з сирих даних. Добре спроектовані ознаки можуть значно покращити продуктивність моделей, іноді більше, ніж вибір алгоритму.
Мета: Створити ознаки, які найкраще представляють основні патерни в даних
Важливість: "Garbage in, garbage out" — погано спроектовані ознаки призводять до поганих результатів
Креативність: Вимагає глибокого розуміння предметної області та даних
Типи ознак
Числові: Безперервні (вік, дохід) та дискретні (кількість)
Категоріальні: Номінальні (колір) та порядкові (рейтинг)
Текстові: Коментарі, описи, вільний текст
Часові: Дати, час, timestamp
Географічні: Координати, адреси
Зображення: Пікселі, відтінки, форми
🛠️ Техніки створення ознак
Створення взаємодій (Interactions)
Множення: feature1 × feature2
Ділення: feature1 / feature2 (співвідношення)
Сума/Різниця: feature1 + feature2, feature1 - feature2
Поліноміальні: feature², feature³
Приклад: Для прогнозування ціни: площа × кількість_кімнат, площа / кількість_кімнат (площа на кімнату)
Витягування з дат
Часові компоненти: рік, місяць, день, день тижня, година
Часові відстані: дні від початку, дні до події
Сезонність: Чи вихідний, сезон, квартал
Циклічні кодування: sin/cos для місяців та годин (зберігає циклічність)
Агрегації та групування
Статистики: mean, median, std, min, max по групах
Підрахунки: Кількість записів у групі
Приклад: Для e-commerce: середня вартість покупок клієнта, кількість замовлень, остання дата покупки
Бінінг та квантування
Бінінг: Перетворення безперервних змінних у категоріальні (вікові групи)
Квантування: Рівномірне або квантильне розбиття
Переваги: Зменшує вплив викидів, може виявити нелінійні зв'язки
🔤 Кодування категоріальних змінних
One-Hot Encoding
Створює бінарні колонки для кожної категорії.
Приклад: Колір [червоний, синій, зелений] → 3 колонки: is_red, is_blue, is_green
Переваги: Не створює упередження порядку
Недоліки: Збільшує розмірність для багатьох категорій
Target Encoding
Замінює категорію середнім значенням цільової змінної для цієї категорії.
Приклад: Для категорії "місто" — середня ціна продажу в цьому місті
Увага: Потрібно unique застосувати для уникнення data leakage
Frequency Encoding
Замінює категорію частотою її появи в даних.
📊 Обробка числових змінних
Масштабування та нормалізація
MinMax Scaling: Масштабування до [0, 1]
Standardization (Z-score): (x - mean) / std, результат має mean=0, std=1
Robust Scaling: Використовує медіану та IQR, стійкий до викидів
Log transformation: log(1+x) для даних з великим розкидом
Обробка викидів
Обрізання (Clipping): Обмеження значень мінімальним та максимальним
Трансформація: Log, sqrt для зменшення впливу
Видалення: Якщо викиди є помилками
🎯 Відбір ознак
Фільтрові методи
Кореляція: Видалення висококорельованих ознак
Chi-square: Для категоріальних змінних
ANOVA F-test: Для числових ознак та категоріальної цілі
Mutual Information: Вимірювання залежності
Wrapper методи
Forward Selection: Послідовне додавання ознак
Backward Elimination: Послідовне видалення
Recursive Feature Elimination: Ітеративне видалення найменш важливих
Вбудовані методи
LASSO: L1 регуляризація автоматично обнуляє неважливі ознаки
Random Forest Importance: Важливість ознак з дерев
XGBoost/LightGBM: Feature importance
📚 Гайд з прикладів
Приклад 1: Створення ознак для нерухомості
Приклад 2: Обробка категоріальних змінних
Приклад 3: Масштабування
© 2025 Science Simulator. Всі права захищені.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Dimensionality Reduction: PCA, t-SNE & UMAP і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Dimensionality Reduction: PCA, t-SNE & UMAP