Créer une grille
Ensuite, il est nécessaire de créer une grille de valeurs à parcourir lors de la recherche des hyperparamètres optimaux. Le sous-module pyspark.ml.tuning comprend une classe appelée ParamGridBuilder qui remplit précisément cette fonction (vous commencez peut-être à remarquer une tendance ici ; PySpark dispose d'un sous-module pour presque tout !).
Vous devrez utiliser les méthodes .addGrid() et .build() pour créer une grille que vous pourrez utiliser pour la validation croisée. La méthode .addGrid() prend un paramètre de modèle (un attribut du modèle Estimator, lr, que vous avez créé il y a quelques exercices) et une liste de valeurs que vous souhaitez tester.
La méthode .build() ne prend aucun argument, elle renvoie simplement la grille que vous utiliserez ultérieurement.
Cet exercice fait partie du cours
<cours>Principes fondamentaux de PySpark</cours>Instructions de l’exercice
- Veuillez importer le sous-module
pyspark.ml.tuningsous l'aliastune. - Veuillez appeler le constructeur de classe
ParamGridBuilder()sans aucun argument. Enregistrez cela sousgrid. - Veuillez appeler la méthode
.addGrid()surgriden utilisantlr.regParamcomme premier argument etnp.arange(0, .1, .01)comme deuxième argument. Ce deuxième appel est une fonction du modulenumpy(a importéas np) qui crée une liste de nombres compris entre 0 et 0,1, avec une incrémentation de 0,01. Veuillez remplacergridpar le résultat. - Veuillez mettre à jour
gridà nouveau en appelant une seconde fois la méthode.addGrid()afin de créer une grille pourlr.elasticNetParamqui inclut uniquement les valeurs[0, 1]. - Veuillez appeler la méthode
.build()surgridet la remplacer par la sortie.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Import the tuning submodule
import ____ as ____
# Create the parameter grid
grid = tune.____
# Add the hyperparameter
grid = grid.addGrid(____, np.arange(0, .1, .01))
grid = grid.addGrid(____, ____)
# Build the grid
grid = grid.build()