LoslegenKostenlos loslegen

Flugdauer-Modellpipeline kreuzvalidieren

Das gerade erstellte kreuzvalidierte Modell war einfach und verwendete nur „ km “, um „ duration “ vorherzusagen.

Ein weiterer wichtiger Faktor für die Flugdauer ist der Abflughafen. Von stark frequentierten Flughäfen dauert es normalerweise länger, bis die Flüge abheben. Mal sehen, ob das Modell mit diesem neuen Prädiktor besser wird!

In dieser Übung fügst du das Feld „ org “ zum Modell hinzu. Da „ org “ aber kategorisch ist, muss noch was gemacht werden, bevor es verwendet werden kann: Es muss erst in einen Index umgewandelt und dann mit One-Hot-Kodierung kodiert werden, bevor es mit „ km “ zusammengefügt und zum Erstellen des Regressionsmodells verwendet werden kann. Wir packen diese Vorgänge in eine Pipeline.

Die folgenden Objekte wurden schon erstellt:

  • params – ein leeres Parameterraster
  • evaluator — ein Regressionsauswerter
  • regression – ein Objekt „ LinearRegression ” mit „ labelCol='duration' ”.

Die Klassen „ StringIndexer “, „ OneHotEncoder “, „ VectorAssembler “ und „ CrossValidator “ wurden schon importiert.

Diese Übung ist Teil des Kurses

Maschinelles Lernen mit PySpark

Kurs anzeigen

Anleitung zur Übung

  • Erstell einen String-Indexer. Gib die Eingabe- und Ausgabefelder als „ org “ und „ org_idx “ an.
  • Erstell einen One-Hot-Encoder. Nenn das Ausgabefeld „ org_dummy “.
  • Füge die Felder „ km “ und „ org_dummy “ zu einem einzigen Feld namens „ features “ zusammen.
  • Mach eine Pipeline mit diesen Schritten: String-Indexer, One-Hot-Encoder, Assembler und lineare Regression. Damit kannst du einen Kreuzvalidator erstellen.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Create an indexer for the org field
indexer = ____(____, ____)

# Create an one-hot encoder for the indexed org field
onehot = ____(____, ____)

# Assemble the km and one-hot encoded fields
assembler = ____(____, ____)

# Create a pipeline and cross-validator.
pipeline = ____(stages=[____, ____, ____, ____])
cv = ____(estimator=____,
          estimatorParamMaps=____,
          evaluator=____)
Code bearbeiten und ausführen