Перевод категориальных признаков в числа: one-hot, ordinal, target encoding, хеширование, эмбеддинги.
Ключевые тезисы
- One-hot безопасен, но взрывает размерность при высокой кардинальности.
- Target encoding силён, но требует out-of-fold-схемы, иначе даёт утечку целевой переменной.
- CatBoost реализует упорядоченное кодирование категорий «из коробки».
Подробный разбор
3 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.
1One-Hot и dummy trap
Самый безопасный способ кодирования и его подводные камни.
Категория с значениями превращается в бинарных столбцов, ровно один из которых равен единице. Модель не получает ложного порядка: «Москва < Казань» не возникает.
Признаки sex (2 значения) и Embarked (3 значения) дают новых бинарных столбцов. При drop_first=True — 4.
Dummy trap: сумма всех столбцов OHE всегда равна 1, поэтому вместе со свободным членом получается линейная зависимость и матрица становится вырожденной. Для линейных моделей без регуляризации один столбец удаляют; для деревьев и Ridge это не нужно.
2Target encoding и утечка
Сильнейший приём для категорий высокой кардинальности — и главный источник утечек.
- коэффициент, задающий вес слагаемого или скорость обновления
- истинное значение целевой переменной
- объект: вектор признаков
- число объектов в выборке
- суммирование по всем перечисленным элементам
Проблема в том, что значение самого объекта участвует в его же признаке. Модель «подглядывает» в ответ, качество на валидации взлетает, в проде падает.
- Считать кодирование out-of-fold: для объектов фолда статистика берётся по остальным фолдам.
- Или использовать упорядоченное кодирование, как в CatBoost: только по «прошлым» объектам в случайной перестановке.
- Всегда добавлять сглаживание : категория из двух объектов иначе получит экстремальное значение.
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.