ÎncepețiÎncepe gratuit

One Hot Encoding

În Statele Unite, locul în care locuiești determină la ce școli pot merge copiii tăi. Prin urmare, este de înțeles că mulți oameni acordă o mare importanță districtelor școlare în care se află viitoarea lor locuință. Deși districtele școlare sunt numerotate în SCHOOLDISTRICTNUMBER, ele sunt de fapt variabile categorice – adică sumarea sau calcularea mediei acestor valori nu are nicio semnificație reală. Prin urmare, în acest exemplu vom converti SCHOOLDISTRICTNUMBER dintr-o variabilă categorică într-un vector numeric, pe care îl vom folosi ulterior în modelul nostru de machine learning.

Acest exercițiu face parte din cursul

Feature Engineering cu PySpark

Vezi cursul

Instrucțiuni pentru exercițiu

  • Instanțiază un transformer StringIndexer numit string_indexer, cu SCHOOLDISTRICTNUMBER ca intrare și School_Index ca ieșire.
  • Aplică transformatorul string_indexer pe df folosind fit() și transform(). Stochează dataframe-ul transformat în indexed_df.
  • Creează un transformer OneHotEncoder numit encoder, folosind School_Index ca intrare și School_Vec ca ieșire.
  • Aplică transformarea pe indexed_df folosind transform(). Inspectează pașii iterativi ai transformării cu ajutorul codului furnizat.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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)
Editează și rulează codul