Convalida incrociata della pipeline del modello di durata del volo
Il modello con convalida incrociata che hai appena costruito era semplice, usando solo km per prevedere duration.
Un altro importante predittore della durata del volo è l'aeroporto di origine. In genere i voli impiegano più tempo a decollare dagli aeroporti affollati. Vediamo se aggiungere questo predittore migliora il modello!
In questo esercizio aggiungerai il campo org al modello. Tuttavia, dato che org è categorico, c'è più lavoro da fare prima di poterlo includere: deve prima essere trasformato in un indice e poi codificato one-hot, prima di essere assemblato con km e usato per costruire il modello di regressione. Raccoglieremo queste operazioni in una pipeline.
Sono già stati creati i seguenti oggetti:
params— una griglia di parametri vuotaevaluator— un valutatore di regressioneregression— un oggettoLinearRegressionconlabelCol='duration'.
Le classi StringIndexer, OneHotEncoder, VectorAssembler e CrossValidator sono già state importate.
Questo esercizio fa parte del corso
Machine Learning con PySpark
Istruzioni dell'esercizio
- Crea uno string indexer. Specifica i campi di input e output come
orgeorg_idx. - Crea un one-hot encoder. Assegna al campo di output il nome
org_dummy. - Assembla i campi
kmeorg_dummyin un unico campo chiamatofeatures. - Crea una pipeline usando le seguenti operazioni: string indexer, one-hot encoder, assembler e regressione lineare. Usala per creare un validatore incrociato.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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=____)