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 Parameterrasterevaluator- einen Regressionsbewerterregression- einLinearRegressionObjekt mitlabelCol='duration'.
Die Klassen StringIndexer, OneHotEncoder, VectorAssembler und CrossValidator sind bereits importiert worden.
Diese Übung ist Teil des Kurses
Maschinelles Lernen mit PySpark
Anleitung zur Übung
- Erstelle einen String-Indexer. Gib die Eingabe- und Ausgabefelder als
orgundorg_idxan. - Erstelle einen One-Hot-Encoder. Benenne das Ausgabefeld
org_dummy. - Füge die Felder
kmundorg_dummyzu einem einzigen Feld namensfeatureszusammen. - 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
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=____)