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
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
trainitestprzyjmują odpowiednio treningową i testową ramkę danych. - Natomiast parametry
targeticategoricalprzyjmują 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())