Créez une grille
Ensuite, vous devez créer une grille de valeurs pour rechercher les hyperparamètres optimaux. Le sous-module pyspark.ml.tuning
comprend une classe appelée ParamGridBuilder
qui fait exactement cela (vous commencez peut-être à remarquer un modèle ici ; PySpark a un sous-module pour à peu près 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 voulez essayer.
La méthode .build()
ne prend aucun argument, elle renvoie simplement la grille que vous utiliserez ultérieurement.
Cet exercice fait partie du cours
Introduction à PySpark
Instructions
- Importez le sous-module
pyspark.ml.tuning
sous l'aliastune
. - Appelez le constructeur de la classe
ParamGridBuilder()
sans arguments. Enregistrez ceci sousgrid
. - Appelez la méthode
.addGrid()
surgrid
aveclr.regParam
comme premier argument etnp.arange(0, .1, .01)
comme second argument. Ce deuxième appel est une fonction du modulenumpy
(importéas np
) qui crée une liste de nombres de 0 à .1, en incrémentant de .01. Remplacezgrid
par le résultat. - Mettez à nouveau à jour
grid
en appelant une deuxième fois la méthode.addGrid()
. Créez une grille pourlr.elasticNetParam
qui ne comprend que les valeurs[0, 1]
. - Appelez la méthode
.build()
surgrid
et remplacez-la par la sortie.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()