Validation croisée d'un pipeline de modèle de durée de vol
Le modèle avec validation croisée que vous venez de créer était simple : il utilisait seulement km pour prédire duration.
Un autre prédicteur important de la durée de vol est l'aéroport d'origine. En général, les décollages prennent plus de temps dans les aéroports très achalandés. Voyons si l'ajout de ce prédicteur améliore le modèle!
Dans cet exercice, vous allez ajouter le champ org au modèle. Toutefois, comme org est catégoriel, il y a du travail à faire avant de l'inclure : il faut d'abord le transformer en indice, puis l'encoder en one-hot avant de l'assembler avec km et de l'utiliser pour construire le modèle de régression. Nous regrouperons 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.
Cette activité fait partie du cours
Machine Learning avec PySpark
Instructions de l’exercice
- Créez un indexeur de chaînes. Indiquez les champs d'entrée et de sortie comme
orgetorg_idx. - Créez un encodeur one-hot. Nommez le champ de sortie
org_dummy. - Assemblez les champs
kmetorg_dummyen un seul champ appeléfeatures. - Créez un pipeline avec les opérations suivantes : indexeur de chaînes, encodeur one-hot, assembleur et régression linéaire. Utilisez-le pour créer un validateur croisé.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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=____)