Inizia subitoInizia gratis

One-Hot Encoding

Negli Stati Uniti, il luogo in cui vivi determina a quali scuole i tuoi figli possono iscriversi. È quindi comprensibile che molte persone tengano molto al distretto scolastico in cui si troverà la loro futura casa. Anche se i distretti scolastici sono numerati in SCHOOLDISTRICTNUMBER, in realtà sono categorici: sommare o fare la media di questi valori non ha un significato evidente. In questo esempio convertiremo quindi SCHOOLDISTRICTNUMBER da variabile categorica a vettore numerico, da usare più avanti nel nostro modello di Machine Learning.

Questo esercizio fa parte del corso

Feature Engineering con PySpark

Visualizza corso

Istruzioni dell'esercizio

  • Istanzia un StringIndexer chiamato string_indexer con SCHOOLDISTRICTNUMBER come input e School_Index come output.
  • Applica il transformer string_indexer a df con fit() e transform(). Salva il dataframe trasformato in indexed_df.
  • Crea un OneHotEncoder chiamato encoder usando School_Index come input e School_Vec come output.
  • Applica la trasformazione a indexed_df usando transform(). Esamina i passaggi iterativi della trasformazione con il codice fornito.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

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)
Modifica ed esegui il codice