Kom igångKom igång gratis

One Hot Encoding

I USA avgör var du bor vilka skolor dina barn kan gå i. Det är därför förståeligt att många bryr sig om vilka skoldistrikt deras framtida hem tillhör. Även om skoldistrikten är numrerade i SCHOOLDISTRICTNUMBER är de i grunden kategoriska variabler – det vill säga att summera eller medelvärdesberäkna dessa värden saknar egentlig mening. I den här övningen konverterar vi därför SCHOOLDISTRICTNUMBER från en kategorisk variabel till en numerisk vektor för att använda i maskininlärningsmodellen senare.

Den här övningen är en del av kursen

Feature Engineering med PySpark

Visa kurs

Övningsinstruktioner

  • Instansiera en StringIndexer-transformer kallad string_indexer med SCHOOLDISTRICTNUMBER som indata och School_Index som utdata.
  • Applicera transformern string_indexerdf med fit() och transform(). Lagra den transformerade dataramen i indexed_df.
  • Skapa en OneHotEncoder-transformer kallad encoder med School_Index som indata och School_Vec som utdata.
  • Applicera omvandlingen på indexed_df med transform(). Undersök de iterativa stegen i omvandlingen med den medföljande koden.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod