Validation croisée du pipeline de modèles de durée de vol
Le modèle à validation croisée que vous venez de construire était simple, utilisant uniquement km pour prédire duration.
L'aéroport d'origine est un autre facteur prédictif important de la durée des vols. Les vols mettent généralement plus de temps à décoller des aéroports très fréquentés. Voyons si l'ajout de ce prédicteur améliore le modèle !
Dans cet exercice, vous ajouterez le champ org au modèle. Cependant, comme org est catégorique, il y a plus de travail à faire avant de pouvoir l'inclure : il doit d'abord être transformé en indice, puis codé à un chiffre avant d'être assemblé avec km et utilisé pour construire le modèle de régression. Nous allons regrouper ces opérations dans un pipeline.
Les objets suivants ont déjà été créés :
params- une grille de paramètres videevaluator- un évaluateur de régressionregression- un objetLinearRegressionaveclabelCol='duration'.
Les classes StringIndexer, OneHotEncoder, VectorAssembler et CrossValidator ont déjà été importées.
Cet exercice fait partie du cours
Apprentissage automatique avec PySpark
Instructions
- Créez un indexeur de chaînes de caractères. Spécifiez les champs d'entrée et de sortie comme
orgetorg_idx. - Créez un codeur à un coup. Nommez le champ de sortie
org_dummy. - Rassemblez les champs
kmetorg_dummyen un seul champ appeléfeatures. - Créez un pipeline à l'aide des opérations suivantes : indexeur de chaînes, codeur à un point, assembleur et régression linéaire. Utilisez-le pour créer un validateur croisé.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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=____)