ComenzarEmpieza gratis

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

El modelo validado cruzadamente que acabas de crear era sencillo, ya que utilizaba únicamente km para predecir duration.

Otro factor importante que determina la duración del vuelo es el aeropuerto de origen. Los vuelos suelen tardar más en despegar desde aeropuertos con mucho tráfico. ¡Veamos si añadir este predictor mejora el modelo!

En este ejercicio, añadirás el campo « org » al modelo. Sin embargo, dado que org es categórico, hay más trabajo por hacer antes de que pueda incluirse: primero debe transformarse en un índice y luego codificarse con one-hot antes de ensamblarse con km y utilizarse para construir el modelo de regresión. Envolveremos estas operaciones en una canalización.

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'.

Las clases StringIndexer, OneHotEncoder, VectorAssembler y CrossValidator ya se han importado.

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 one-hot. Nombra el campo de salida « org_dummy ».
  • Une los campos « km » y « org_dummy » en un solo campo llamado « features ».
  • Crea una canalización utilizando las siguientes operaciones: indexador de cadenas, codificador one-hot, ensamblador y regresión lineal. Utiliza esto para crear un validador cruzado.

Ejercicio interactivo práctico

Prueba este ejercicio y completa 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