Получить доступ

Зачем масштабировать признаки и как кодировать категориальные признаки?

JuniorОсновы машинного обученияscikit-learn
Ещё спрашивают так:
  • Чем one-hot encoding отличается от target encoding?
Коротко

Масштабирование (StandardScaler, MinMaxScaler) нужно моделям, чувствительным к расстояниям и величине весов: линейным с регуляризацией, k-means, kNN, нейросетям. Деревьям оно не нужно. Категории кодируют one-hot (столбец на значение — для небольшого числа значений), target encoding (среднее целевой по категории — для высокой кардинальности, с защитой от утечки) или встроенно (CatBoost, LightGBM).

  • Параметры масштабирования считают только на обучающей выборке
  • Label encoding (числа 0, 1, 2) подходит деревьям, но вводит ложный порядок для линейных моделей
  • Редкие категории объединяют в «прочее»

А ещё Новая категория в продакшене не должна ронять модель — предусмотреть «неизвестно»

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Масштабирование:

  • StandardScaler — вычесть среднее, разделить на стандартное отклонение;
  • MinMaxScaler — привести к [0, 1], чувствителен к выбросам;
  • RobustScaler — по медиане и квартилям, устойчив к выбросам;
  • логарифм для признаков с длинным хвостом (доход, цена).

Категориальные признаки:

способкогдариск
one-hotмало значенийвзрыв числа столбцов
label / ordinalдеревья или естественный порядокложный порядок
target encodingмного значенийутечка — считать по фолдам со сглаживанием
эмбеддингинейросети, очень много значенийнужно обучение

Pipeline. Все преобразования оборачивают в Pipeline/ColumnTransformer: обучаются только на обучающих данных и одинаково применяются в продакшене — никаких расхождений между обучением и инференсом.

Что хотят услышать

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

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем