Данные

Feature engineering

Конструирование признаков

актуальноТекущий рабочий стандарт

Направления: Машинное обучение · Классический ML

Создание , в которых закономерность становится линейно отделимой или просто более заметной для модели.

Ключевые тезисы

  • Агрегаты, разности, отношения, лаги и оконные статистики — рабочая лошадка табличных задач.
  • Доменные знания дают , которые модель не выведет из сырых столбцов.
  • Каждый новый — риск утечки: проверяйте, доступен ли он в предсказания.

Какую задачу решает

Модель видит только то, что вы ей дали. Если зависимость выражается через отношение двух , а вы подали их по отдельности, линейная модель эту связь не найдёт никогда, а дереву придётся приближать её лестницей из десятков разбиений. — это перевод знания о предметной области в форму, доступную алгоритму.

На табличных данных это, как правило, самый результативный вид работы: хороший даёт больше, чем переход от к бустингу. Обратная сторона — именно здесь чаще всего возникает утечка, потому что признак легко построить с использованием информации, которой в предсказания ещё не существует.

Признак, который нельзя строить

Задача: предсказать, вернёт ли клиент кредит. Соблазнительный — «среднее число просрочек по клиенту». Если считать его по всей истории, включая период после выдачи кредита, модель получит на обучении почти прямой доступ к ответу: 0.95, восторг команды, полный провал в проде. Правильно — считать агрегат строго по данным, доступным на дату заявки. Практический тест: для каждого признака спросите «в предсказания это значение уже существует?». Если ответ «нет» или «не уверен» — признак под подозрением.

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

2 подтемы — объяснения, формулы, примеры и интерактивные графики.

  • Отношения и разности: цена за квадратный метр, доля погашенного долга, разница между зарплатой и средней по региону.
  • Агрегаты по группам: средний чек клиента, число заказов за 30 дней, стандартное отклонение суммы транзакций.
  • Лаги и окна (для рядов): значение неделю назад, скользящее среднее за 7 дней, минимум за месяц.
  • Календарь: день недели, праздник, номер недели, час — циклические лучше кодировать синусом и косинусом.
Циклическое кодирование: 23 часа и 0 часов оказываются рядом, а не на разных концах шкалы

Линейная модель не умеет умножать друг на друга. Если эффект признака зависит от другого («скидка работает только на дорогих товарах»), это взаимодействие нужно добавить руками.

PolynomialFeatures(degree=2) для двух даёт пять
На практике

Число растёт как : 50 во второй степени превращаются в 1325. Дальше обязательна , иначе гарантировано. Деревьям и бустингу такие признаки нужны редко — они ловят взаимодействия сами.

-3-113-4-2024xy
степень полинома3
ошибка на train0.568
ошибка на test0.395
диагнозбаланс
Степень полинома — прямой рычаг сложности: слева недообучение, справа переобучение

Где применяется

  • Табличные задачиОсновной источник прироста качества; часто важнее выбора модели.
  • Временные рядыЛаги, скользящие средние, календаря превращают ряд в обычную табличную задачу.
  • Транзакционные данныеАгрегаты по клиенту за окна времени — стандартный набор в скоринге и антифроде.
  • Линейные моделиВзаимодействия и нелинейности приходится вносить руками — иначе модель их не увидит.

Плюсы, минусы и альтернативы

Плюсы

  • Наибольший прирост качества на единицу усилий в табличных задачах.
  • интерпретируемы и обсуждаемы с предметными экспертами.
  • Хороший работает с любой моделью, а не только с текущей.
  • Позволяет вложить в модель знание, которого нет в данных явно.

Минусы

  • Требует понимания предметной области — не автоматизируется полностью.
  • Главный источник .
  • Число растёт быстро, и часть из них шум.
  • , построенные на агрегатах, нужно уметь пересчитывать в проде так же, как в обучении.

Брать, если

  • Данные табличные и есть доступ к предметной экспертизе.
  • Модель линейная: без ручных взаимодействий она слепа.
  • Есть время и события: календарные и лаговые почти всегда полезны.

Не брать, если

  • Данные — изображения, звук, текст: сеть построит лучше вас.
  • нельзя честно посчитать в предсказания — не создавайте его вовсе.

Чем заменяют

Тема также относится к главам:Практика MLПризнаки

Видеолекции

Записи университетских курсов, где эта тема звучит. Ссылка открывает запись с той секунды, где о ней говорят, — искать по трёхчасовой лекции не нужно.

Связанные темы

Признаки в реальном времени · Подготовка данных · Признаки: создание, отбор, важность

Feature Stores96%

Хранилища признаков · MLOps

Централизованное хранилище признаков, единое для обучения и онлайн-инференса.

Feature engineering96%

Работа с признаками · Практика ML

На табличных данных грамотные признаки дают больший прирост, чем смена модели.

Encoding93%

Кодирование категорий · Данные

Перевод категориальных признаков в числа: one-hot, ordinal, target encoding, хеширование, эмбеддинги.

Online and Offline Features85%

Онлайн- и офлайн-признаки · Системный дизайн ML-сервисов

Часть признаков считается заранее, часть — в момент запроса. Расхождение между ними — главный источник инцидентов.

Batch and Streaming85%

Батч и стриминг · Инженерия данных

Обработка по расписанию против непрерывной обработки событий. Разные задержки, разные гарантии, разная стоимость.

Change Data Capture85%

Захват изменений (CDC) · Инженерия данных

Чтение журнала изменений базы вместо периодических полных выгрузок.

Data preprocessing75%

Предобработка данных · Данные

Приведение сырых данных к виду, пригодному для обучения: типы, форматы, дубликаты, согласованность единиц измерения.

Missing values75%

Пропущенные значения · Данные

Пропуски бывают случайными и неслучайными — от механизма зависит, можно ли их просто заполнить.

Outliers75%

Выбросы · Данные

Наблюдения, резко отличающиеся от остальных. Они бывают ошибками измерения, а бывают самым ценным сигналом.

Normalization & Standardization75%

Нормализация и стандартизация · Данные

Приведение признаков к сопоставимым масштабам, без которого расстояния, градиенты и регуляризация работают некорректно.

ML Pipelines75%

ML-пайплайны · MLOps

Оформление обучения как воспроизводимой последовательности шагов вместо разрозненных ноутбуков.

Feature selection70%

Отбор признаков · Данные

Убираем шумные и избыточные признаки, чтобы снизить переобучение, ускорить инференс и упростить интерпретацию.

Feature importance70%

Важность признаков · Интерпретируемость моделей

Оценка вклада признаков в предсказания модели — первый шаг к пониманию её логики.

Permutation Importance70%

Перестановочная важность · Интерпретируемость моделей

Признак перемешивается, и измеряется падение качества модели — модельно-независимый и честный подход.

Topological features70%

Топологические признаки · Топологический анализ данных

Векторизация топологии: энтропия персистентности, суммарная длина жизни, числа Бетти, persistence images.

Следующий шагДальше по связи: Feature StoresЦентрализованное хранилище признаков, единое для обучения и онлайн-инференса.Перейти →

Глава «Данные» последний раз правилась . Нашли ошибку — напишите.