Поза межами бінарної класифікації
Звісно, бінарна класифікація — лише окремий випадок. Цільове кодування можна застосовувати до будь-якого типу цільової змінної:
- Для бінарної класифікації зазвичай використовують кодування середнім значенням цілі
- Для регресії середнє можна замінити на медіану, квартилі тощо
- Для багатокласової класифікації з N класами створюють N ознак із середнім цільовим значенням для кожної категорії у підході one-vs-all
Функцію mean_target_encoding(), яку ви створили, можна використати для будь-якого з перелічених типів цілі. Застосуймо її до задачі регресії на прикладі змагання House Prices на 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())