Какие способы работы с категориальными признаками существуют?
Ответ от нейросети
sobes.tech AI
С категориальными признаками в машинном обучении работают несколькими основными способами:
-
Label Encoding (числовое кодирование) — каждой категории присваивается уникальное число. Подходит для упорядоченных категорий, но может ввести модель в заблуждение, если порядок отсутствует.
-
One-Hot Encoding — создается бинарный признак для каждой категории. Например, признак "Цвет" с категориями {красный, синий, зеленый} преобразуется в три бинарных признака.
-
Target Encoding — категории заменяются на статистику целевой переменной (например, среднее значение целевой переменной для каждой категории). Требует осторожности, чтобы избежать утечки данных.
-
Frequency Encoding — категории заменяются на частоту их встречаемости в данных.
-
Embeddings — для категорий с большим числом уникальных значений (например, в NLP) используют векторные представления, обучаемые совместно с моделью.
Выбор метода зависит от задачи, модели и объема данных. Например, для деревьев решений часто достаточно Label или One-Hot Encoding, а для нейросетей — embeddings.
Пример One-Hot Encoding на Python с pandas:
import pandas as pd
df = pd.DataFrame({'Цвет': ['красный', 'синий', 'зеленый', 'синий']})
df_encoded = pd.get_dummies(df, columns=['Цвет'])
print(df_encoded)
Результат:
Цвет_красный Цвет_зеленый Цвет_синий
0 1 0 0
1 0 0 1
2 0 1 0
3 0 0 1