Встречается на 5% собеседований по Data Engineer
Как обрабатывать категориальные признаки
Для обработки категориальных признаков есть несколько методов:
- One-Hot Encoding (OHE) – создает бинарные колонки для каждого уникального значения. Подходит для номинальных признаков без порядка.
python
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(sparse=False)
encoded = encoder.fit_transform(df[['category']])- Label Encoding – присваивает числовые метки категориям. Подходит для порядковых данных.
python
from sklearn.preprocessing import LabelEncoder
encoder = LabelEncoder()
df['category_encoded'] = encoder.fit_transform(df['category'])- Target Encoding – заменяет категории средним значением целевой переменной. Риск утечки данных, требует осторожности.
python
target_mean = df.groupby('category')['target'].mean()
df['category_encoded'] = df['category'].map(target_mean)- Frequency Encoding – заменяет категории их частотой в датасете.
Выбор метода зависит от природы данных и модели. Для деревьев иногда можно оставить категории как строки, для линейных моделей – OHE или embeddings. Всегда проверяйте влияние на целевую метрику!
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы