Данные

Encoding

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

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

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

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

  • One-hot безопасен, но взрывает размерность при высокой кардинальности.
  • Target encoding силён, но требует out-of-fold-схемы, иначе даёт утечку целевой переменной.
  • CatBoost реализует упорядоченное кодирование категорий «из коробки».

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

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

1

One-Hot и dummy trap

Самый безопасный способ кодирования и его подводные камни.

Категория с значениями превращается в бинарных столбцов, ровно один из которых равен единице. Модель не получает ложного порядка: «Москва < Казань» не возникает.

Пример

Признаки sex (2 значения) и Embarked (3 значения) дают новых бинарных столбцов. При drop_first=True — 4.

На практике

Dummy trap: сумма всех столбцов OHE всегда равна 1, поэтому вместе со свободным членом получается линейная зависимость и матрица становится вырожденной. Для линейных моделей без регуляризации один столбец удаляют; для деревьев и Ridge это не нужно.

2

Target encoding и утечка

Сильнейший приём для категорий высокой кардинальности — и главный источник утечек.

Обозначения
  • коэффициент, задающий вес слагаемого или скорость обновления
  • истинное значение целевой переменной
  • объект: вектор признаков
  • число объектов в выборке
  • суммирование по всем перечисленным элементам
Сглаженное среднее целевой переменной по категории: подтягивает редкие категории к общему среднему

Проблема в том, что значение самого объекта участвует в его же признаке. Модель «подглядывает» в ответ, качество на валидации взлетает, в проде падает.

  1. Считать кодирование out-of-fold: для объектов фолда статистика берётся по остальным фолдам.
  2. Или использовать упорядоченное кодирование, как в CatBoost: только по «прошлым» объектам в случайной перестановке.
  3. Всегда добавлять сглаживание : категория из двух объектов иначе получит экстремальное значение.
3

Остальные кодировщики

Ordinal, frequency, hashing, эмбеддинги — когда что уместно.

МетодКогда применятьРиск
Ordinalпорядковые признаки: низкий / средний / высокийложный порядок у номинальных
Frequencyдеревья, высокая кардинальностьдве разные категории с равной частотой сливаются
Hashingмиллионы категорий, потоковые данныеколлизии
Эмбеддингинейросети, очень много категорийнужны данные и обучение
На практике

Для деревьев one-hot по признаку с 1000 категорий — плохая идея: каждый бинарный столбец даёт слабое разбиение, дерево вынуждено расти вглубь. Здесь выигрывают target/ordered encoding и встроенная обработка CatBoost.

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

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

Feature engineering93%

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

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

Decision Trees85%

Решающие деревья · Классическое машинное обучение

Последовательность вопросов «признак > порог», разбивающая пространство на прямоугольные области.

Random Forest85%

Случайный лес · Классическое машинное обучение

Бэггинг деревьев со случайными подвыборками объектов и признаков: усреднение резко снижает дисперсию.

Gradient Boosting85%

Градиентный бустинг · Классическое машинное обучение

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

XGBoost85%

XGBoost · Классическое машинное обучение

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

LightGBM85%

LightGBM · Классическое машинное обучение

Быстрый бустинг от Microsoft: гистограммное разбиение и рост дерева по листьям вместо по уровням.

CatBoost85%

CatBoost · Классическое машинное обучение

Бустинг от Яндекса с упорядоченным кодированием категорий и упорядоченным бустингом против смещения.

SHAP85%

SHAP · Интерпретируемость моделей

Распределение вклада признаков на основе значений Шепли из теории игр — с гарантиями аддитивности и согласованности.

Data preprocessing75%

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

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

Missing values75%

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

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

Outliers75%

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

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

Normalization & Standardization75%

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

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

ML Pipelines75%

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

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

Feature selection70%

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

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

Feature engineering70%

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

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

Feature importance70%

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

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

Permutation Importance70%

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

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

Feature Stores70%

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

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

Topological features70%

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

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