Diseccionando el mejor modelo de duración de vuelo
Acabas de configurar un CrossValidator
para encontrar buenos parámetros para el modelo de regresión lineal que predice la duración del vuelo.
El conducto del modelo tiene varias etapas (objetos de tipo StringIndexer
, OneHotEncoder
, VectorAssembler
y LinearRegression
), que funcionan en secuencia. Las etapas están disponibles como atributo stages
en el objeto tubería. Se representan mediante una lista y las etapas se ejecutan en la secuencia en que aparecen en la lista.
Ahora vas a examinar más detenidamente el pipeline, dividir las etapas y utilizarlo para hacer predicciones sobre los datos de las pruebas.
Ya se han creado los siguientes objetos:
cv
- un objeto entrenadoCrossValidatorModel
yevaluator
- un objetoRegressionEvaluator
.
Los datos de los vuelos se han dividido aleatoriamente en flights_train
y flights_test
.
Este ejercicio forma parte del curso
Machine learning con PySpark
Instrucciones de ejercicio
- Recupera el mejor modelo.
- Mira las etapas en el mejor modelo.
- Aísla la etapa de regresión lineal y extrae sus parámetros.
- Utiliza el mejor modelo para generar predicciones sobre los datos de prueba y calcula el RMSE.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Get the best model from cross validation
best_model = cv.____
# Look at the stages in the best model
print(best_model.____)
# Get the parameters for the LinearRegression object in the best model
best_model.____.extractParamMap()
# Generate predictions on testing data using the best model then calculate RMSE
predictions = ____.____(____)
print("RMSE =", ____.____(____))