LoslegenKostenlos loslegen

Cross-Validierung der Flugdauer-Modellpipeline

Das kreuzvalidierte Modell, das du gerade erstellt hast, war einfach, indem du nur km benutzt hast, um duration vorherzusagen.

Ein weiterer wichtiger Prädiktor für die Flugdauer ist der Herkunftsflughafen. Auf stark frequentierten Flughäfen dauert es in der Regel länger, bis die Flüge in die Luft kommen. Mal sehen, ob das Hinzufügen dieses Prädiktors das Modell verbessert!

In dieser Übung fügst du das Feld org zum Modell hinzu. Da org jedoch kategorisch ist, muss mehr Arbeit geleistet werden, bevor es einbezogen werden kann: Es muss zunächst in einen Index umgewandelt und dann mit einem Hotcode versehen werden, bevor es mit km zusammengesetzt und zur Erstellung des Regressionsmodells verwendet wird. Wir verpacken diese Vorgänge in eine Pipeline.

Die folgenden Objekte sind bereits erstellt worden:

  • params - ein leeres Parameterraster
  • evaluator - einen Regressionsbewerter
  • regression - ein LinearRegression Objekt mit labelCol='duration'.

Die Klassen StringIndexer, OneHotEncoder, VectorAssembler und CrossValidator sind bereits importiert worden.

Diese Übung ist Teil des Kurses

Maschinelles Lernen mit PySpark

Kurs anzeigen

Anleitung zur Übung

  • Erstelle einen String-Indexer. Gib die Eingabe- und Ausgabefelder als org und org_idx an.
  • Erstelle einen One-Hot-Encoder. Benenne das Ausgabefeld org_dummy.
  • Füge die Felder km und org_dummy zu einem einzigen Feld namens features zusammen.
  • Erstelle eine Pipeline mit den folgenden Operationen: String-Indexer, One-Hot-Encoder, Assembler und lineare Regression. Verwende dies, um einen Kreuzvalidator zu erstellen.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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