Обработка категориальных переменных
Чем различаются One-hot, Label, Helmert и Frequency Encoding?
Вот сравнение этих методов кодирования категориальных переменных:
-
One-hot Encoder: Создает новый бинарный признак для каждой уникальной категории исходного признака. Используется, когда порядок категорий не имеет значения.
-
LabelEncoder в scikit-learn кодирует целевые метки y. Для категориальных признаков X используют OrdinalEncoder; при смысловом порядке категорий его задают явно.
-
Helmert Encoding: задаёт контрасты между уровнями категории. В реализации category_encoders каждый уровень сравнивается со средним предыдущих уровней через фиксированную матрицу кодирования. Это не вычисление средних целевой переменной и не сравнение только с одной предыдущей категорией.
-
Frequency Encoder: Заменяет каждую категорию на частоту ее встречаемости в исходном признаке. Может быть полезным, если частота категорий важна для модели.
Какие методы вы используете для преобразования категориальных переменных?
Часто используемые методы для преобразования категориальных переменных:
-
One-hot Encoding: Для переменных без упорядоченных категорий, где каждая категория равнозначна. -
Label Encoding: Для переменных с упорядоченными категориями или когда порядок имеет значение. -
Target Encoding: заменяет категорию оценкой целевой переменной, например средним y. Чтобы избежать утечки, кодирование обучающих строк рассчитывают без их собственных целевых значений, обычно через кросс-валидацию.