Startflughafen encodieren
Die Spalte org in den Flugdaten ist eine kategoriale Variable und gibt den Flughafen an, von dem ein Flug startet.
- ORD — O'Hare International Airport (Chicago)
- SFO — San Francisco International Airport
- JFK — John F Kennedy International Airport (New York)
- LGA — La Guardia Airport (New York)
- SMF — Sacramento
- SJC — San Jose
- OGG — Kahului (Hawaii)
Das ist natürlich nur eine kleine Auswahl an Flughäfen. Da es sich jedoch um eine kategoriale Variable handelt, muss sie vor der Verwendung in einem Regressionsmodell per One-Hot-Encoding umgewandelt werden.
Die Daten liegen in einer Variablen namens flights. Du hast bereits einen StringIndexer verwendet, um eine Spalte mit indizierten Werten zu erstellen, die den Strings in org entsprechen.
Es kann hilfreich sein, die Folien aus den Lektionen im Bereich Folien neben der IPython Shell noch einmal durchzugehen.
Diese Übung ist Teil des Kurses
<Kurs>Maschinelles Lernen mit PySpark</Kurs>Übungsanweisungen
- Importiere die One-Hot-Encoder-Klasse.
- Erstelle eine One-Hot-Encoder-Instanz und nenne die Eingabespalte
org_idxund die Ausgabespalteorg_dummy. - Wende den One-Hot-Encoder auf die Flugdaten an.
- Erzeuge eine Übersicht der Zuordnung von kategorialen Werten zu binär codierten Dummy-Variablen. Nimm nur eindeutige Werte auf und sortiere nach
org_idx.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Import the one hot encoder class
from pyspark.ml.____ import ____
# Create an instance of the one hot encoder
onehot = ____(inputCols=[____], outputCols=[____])
# Apply the one hot encoder to the flights data
onehot = onehot.____(____)
flights_onehot = onehot.____(____)
# Check the results
flights_onehot.____('org', 'org_idx', 'org_dummy').____().____('org_idx').show()