1. Nauka
  2. /
  3. Kursy
  4. /
  5. Extreme Gradient Boosting with XGBoost

Connected

ćwiczenie

Kodowanie kolumn kategorycznych II: OneHotEncoder

Masz już kolumny kategoryczne zakodowane numerycznie. Czy możesz teraz przejść do używania potoków i XGBoosta? Jeszcze nie! W kolumnach kategorycznych tego zbioru danych nie ma naturalnego porządku między wartościami. Przykładowo: przy użyciu LabelEncoder dzielnica CollgCr została zakodowana jako 5, dzielnica Veenker jako 24, a Crawfor jako 6. Czy Veenker jest „większy" niż Crawfor i CollgCr? Nie – a pozwolenie modelowi na założenie takiego naturalnego porządku może skutkować słabą jakością predykcji.

Potrzebny jest zatem jeszcze jeden krok: zastosowanie kodowania „jeden z n" (ang. one-hot encoding), które tworzy zmienne binarne, zwane też „dummy variables". Możesz to zrobić za pomocą klasy OneHotEncoder z biblioteki scikit-learn.

Instrukcje

100 XP
  • Zaimportuj OneHotEncoder z modułu sklearn.preprocessing.
  • Utwórz obiekt OneHotEncoder o nazwie ohe. Podaj argument kluczowy sparse=False.
  • Używając metody .fit_transform(), zastosuj OneHotEncoder do df i zapisz wynik jako df_encoded. Wynik będzie tablicą NumPy.
  • Wyświetl pierwsze 5 wierszy df_encoded, a następnie kształt df i df_encoded, aby porównać różnicę.