ComenzarEmpieza gratis

Validación cruzada del modelo de duración de vuelo

El modelo de validación cruzada que acabas de construir era sencillo, ya que utilizaba km únicamente para predecir duration.

Otro factor importante para predecir la duración del vuelo es el aeropuerto de origen. Los vuelos suelen tardar más en despegar de aeropuertos muy transitados. Veamos si añadir este predictor mejora el modelo.

En este ejercicio añadirás el campo org al modelo. Sin embargo, como org es categórica, hay que hacer más trabajo antes de incluirla: primero hay que transformarla en un índice y luego codificarla en un punto antes de ensamblarla con km y utilizarla para construir el modelo de regresión. Envolveremos estas operaciones en una tubería.

Ya se han creado los siguientes objetos:

  • params - una cuadrícula de parámetros vacía
  • evaluator - un evaluador de regresión
  • regression - un objeto LinearRegression con labelCol='duration'.

Ya se han importado las clases StringIndexer, OneHotEncoder, VectorAssembler y CrossValidator.

Este ejercicio forma parte del curso

Machine learning con PySpark

Ver curso

Instrucciones del ejercicio

  • Crea un indexador de cadenas. Especifica los campos de entrada y salida como org y org_idx.
  • Crea un codificador de un solo disparo. Nombra el campo de salida org_dummy.
  • Reúne los campos km y org_dummy en un único campo llamado features.
  • Crea un pipeline utilizando las siguientes operaciones: indexador de cadenas, codificador de un punto, ensamblador y regresión lineal. Utilízalo para crear un validador cruzado.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

# 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=____)
Editar y ejecutar código