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íaevaluator
- un evaluador de regresiónregression
- un objetoLinearRegression
conlabelCol='duration'
.
Ya se han importado las clases StringIndexer
, OneHotEncoder
, VectorAssembler
y CrossValidator
.
Este ejercicio forma parte del curso
Machine learning con PySpark
Instrucciones del ejercicio
- Crea un indexador de cadenas. Especifica los campos de entrada y salida como
org
yorg_idx
. - Crea un codificador de un solo disparo. Nombra el campo de salida
org_dummy
. - Reúne los campos
km
yorg_dummy
en un único campo llamadofeatures
. - 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=____)