Zacznij terazZacznij za darmo

Kodowanie One-Hot

W Stanach Zjednoczonych miejsce zamieszkania decyduje o tym, do jakich szkół mogą uczęszczać dzieci. Nie dziwi więc, że wiele osób przywiązuje dużą wagę do okręgu szkolnego, w którym leży ich przyszły dom. Numery okręgów szkolnych są zapisane w kolumnie SCHOOLDISTRICTNUMBER, jednak w rzeczywistości są to wartości kategoryczne – ich sumowanie czy uśrednianie nie ma żadnego sensu. W tym ćwiczeniu przekształcimy SCHOOLDISTRICTNUMBER ze zmiennej kategorycznej w wektor numeryczny, który będzie można wykorzystać w modelu uczenia maszynowego.

To ćwiczenie jest częścią kursu

Inżynieria cech z PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz transformer StringIndexer o nazwie string_indexer, używając SCHOOLDISTRICTNUMBER jako wejścia i School_Index jako wyjścia.
  • Zastosuj transformer string_indexer do df za pomocą fit() i transform(). Przekształcony DataFrame zapisz w zmiennej indexed_df.
  • Utwórz transformer OneHotEncoder o nazwie encoder, używając School_Index jako wejścia i School_Vec jako wyjścia.
  • Zastosuj transformację do indexed_df za pomocą transform(). Przeanalizuj kolejne kroki transformacji, korzystając z dostarczonego kodu.

Interaktywne ćwiczenie praktyczne

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

from pyspark.ml.feature import OneHotEncoder, StringIndexer

# Map strings to numbers with string indexer
string_indexer = ____(inputCol=____, outputCol=____)
indexed_df = ____.____(df).____(df)

# Onehot encode indexed values
encoder = ____(inputCol=____, outputCol=____)
encoded_df = ____.____(indexed_df)

# Inspect the transformation steps
encoded_df[['SCHOOLDISTRICTNUMBER', 'School_Index', 'School_Vec']].show(truncate=100)
Edytuj i uruchom kod