IniziaInizia gratis

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 vuota
  • evaluator — un valutatore di regressione
  • regression — un oggetto LinearRegression con labelCol='duration'.

Le classi StringIndexer, OneHotEncoder, VectorAssembler e CrossValidator sono già state importate.

Questo esercizio fa parte del corso

Machine Learning con PySpark

Visualizza il corso

Istruzioni dell'esercizio

  • Crea uno string indexer. Specifica i campi di input e output come org e org_idx.
  • Crea un one-hot encoder. Assegna al campo di output il nome org_dummy.
  • Assembla i campi km e org_dummy in un unico campo chiamato features.
  • 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=____)
Modifica ed esegui il codice