За пределами бинарной классификации
Бинарная классификация — лишь один частный случай. Целевое кодирование можно применять к целевой переменной любого типа:
- При бинарной классификации обычно используется кодирование средним значением целевой переменной
- При регрессии среднее можно заменить медианой, квартилями и т. д.
- При многоклассовой классификации с N классами создаётся N признаков со средним значением целевой переменной для каждой категории по схеме «один против всех»
Функция mean_target_encoding(), которую вы создали, подходит для любого из перечисленных типов целевой переменной. Давайте применим её к задаче регрессии на примере соревнования Kaggle по ценам на жильё.
Ваша цель — закодировать категориальный признак "RoofStyle" с помощью целевого кодирования средним значением. Датафреймы train и test уже доступны в вашем рабочем пространстве.
Это упражнение является частью курса
Победа в соревновании Kaggle на Python
Инструкции к упражнению
- Укажите все недостающие параметры при вызове функции
mean_target_encoding(). Имя целевой переменной —"SalePrice". Задайте гиперпараметр \(\alpha\) равным 10. - Помните, что параметры
trainиtestпринимают соответствующие датафреймы с обучающими и тестовыми данными. - Параметры
targetиcategoricalпринимают имена целевой переменной и признака, который нужно закодировать.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create mean target encoded feature
train['RoofStyle_enc'], test['RoofStyle_enc'] = mean_target_encoding(train=train,
test=____,
target='____',
categorical='____',
alpha=____)
# Look at the encoding
print(test[['RoofStyle', 'RoofStyle_enc']].drop_duplicates())