Zacznij terazZacznij za darmo

Poza klasyfikacją binarną

Klasyfikacja binarna to tylko jeden szczególny przypadek. Kodowanie na podstawie wartości docelowej można stosować do zmiennych docelowych dowolnego typu:

  • W przypadku klasyfikacji binarnej zazwyczaj stosuje się kodowanie średnią wartości docelowej
  • W przypadku regresji średnią można zastąpić medianą, kwartylami itp.
  • W przypadku klasyfikacji wieloklasowej z N klasami tworzymy N cech ze średnią wartości docelowej dla każdej kategorii w podejściu „jedna klasa kontra wszystkie pozostałe"

Funkcja mean_target_encoding(), którą stworzyłeś(-aś), działa dla każdego z wymienionych typów zmiennych docelowych. Zastosujmy ją teraz do problemu regresji na przykładzie konkursu Kaggle House Prices.

Twoim zadaniem jest zakodowanie cechy kategorycznej "RoofStyle" za pomocą kodowania średnią wartości docelowej. Ramki danych train i test są już dostępne w twoim środowisku pracy.

To ćwiczenie jest częścią kursu

Zwycięstwo w konkursie Kaggle w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Uzupełnij wszystkie brakujące parametry w wywołaniu funkcji mean_target_encoding(). Nazwa zmiennej docelowej to "SalePrice". Ustaw hiperparametr \(\alpha\) na 10.
  • Pamiętaj, że parametry train i test przyjmują odpowiednio treningową i testową ramkę danych.
  • Natomiast parametry target i categorical przyjmują nazwy zmiennej docelowej i cechy do zakodowania.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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())
Edytuj i uruchom kod