---
title: Обработка категориальных переменных
seo:
  title: Обработка категориальных переменных — Data Scientist
  description: "Тема «Обработка категориальных переменных» для собеседования Data Scientist. Чем различаются One-hot, Label, Helmert и Frequency Encoding? Какие методы вы используете для преобразования категориальных переменных?"
---

[Все темы Data Scientist](/data-scientist)

## Чем различаются One-hot, Label, Helmert и Frequency Encoding? [#q-14bee738d69b8107b614f4b16204f7ce]

Вот сравнение этих методов кодирования категориальных переменных&#58;

1. <strong>One-hot Encoder</strong>&#58; Создает новый бинарный признак для
   каждой уникальной категории исходного признака. Используется, когда порядок
   категорий не имеет значения.

1. LabelEncoder в scikit-learn кодирует целевые метки y. Для категориальных признаков X используют OrdinalEncoder; при смысловом порядке категорий его задают явно.

1. Helmert Encoding&#58; задаёт контрасты между уровнями категории. В реализации category_encoders каждый уровень сравнивается со средним предыдущих уровней через фиксированную матрицу кодирования. Это не вычисление средних целевой переменной и не сравнение только с одной предыдущей категорией.

1. <strong>Frequency Encoder</strong>&#58; Заменяет каждую категорию на частоту
   ее встречаемости в исходном признаке. Может быть полезным, если частота
   категорий важна для модели.

:::note[Ссылки для изучения]

1. [Как получить полезную информацию из своих категориальных признаков](https://habr.com/ru/companies/karuna/articles/769366/)
   :::

---

## <strong>Какие методы вы используете для преобразования категориальных переменных?</strong> [#q-14bee738d69b81cb8e63c2fc5ea0c043]

Часто используемые методы для преобразования категориальных переменных&#58;

1. <code>One&#45;hot Encoding</code>&#58; Для переменных без упорядоченных
   категорий, где каждая категория равнозначна.

1. <code>Label Encoding</code>&#58; Для переменных с упорядоченными категориями
   или когда порядок имеет значение.

1. Target Encoding&#58; заменяет категорию оценкой целевой переменной, например средним y. Чтобы избежать утечки, кодирование обучающих строк рассчитывают без их собственных целевых значений, обычно через кросс-валидацию.

:::note[Ссылки для изучения]

1. [Как получить полезную информацию из своих категориальных признаков](https://habr.com/ru/companies/karuna/articles/769366/)
   :::
