Вопрос с собеседования · AI и LLM

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

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

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

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

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

Подробно

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

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

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

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

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

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

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

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Масштабирование обязательно для деревьев, а параметры масштаба считают на всём наборе вместе с тестом — так они точнее
  • ✗Параметры масштабирования считают на всём наборе данных вместе с тестом
  • ✓Масштаб — для линейных, kNN и нейросетей; категории — one-hot или target encoding
  • ✗Label encoding подходит для любых категорий в линейной модели

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

Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования