Crea una griglia
Ora devi creare una griglia di valori su cui effettuare la ricerca per trovare gli iperparametri ottimali. Il sottomodulo pyspark.ml.tuning include una classe chiamata ParamGridBuilder che fa proprio questo (forse stai iniziando a notare un pattern: PySpark ha un sottomodulo per quasi tutto!).
Dovrai usare i metodi .addGrid() e .build() per creare una griglia da usare per la validazione incrociata. Il metodo .addGrid() prende un parametro del modello (un attributo dell’Estimator del modello, lr, che hai creato qualche esercizio fa) e una lista di valori che vuoi provare.
Il metodo .build() non prende argomenti: restituisce semplicemente la griglia che userai più avanti.
Questo esercizio fa parte del corso
Fondamenti di PySpark
Istruzioni dell'esercizio
- Importa il sottomodulo
pyspark.ml.tuningcon l'aliastune. - Chiama il costruttore della classe
ParamGridBuilder()senza argomenti. Salvalo comegrid. - Chiama il metodo
.addGrid()sugridconlr.regParamcome primo argomento enp.arange(0, .1, .01)come secondo argomento. Questa seconda chiamata è una funzione del modulonumpy(importatoas np) che crea una lista di numeri da 0 a .1 con incrementi di .01. Sovrascrivigridcon il risultato. - Aggiorna di nuovo
gridchiamando il metodo.addGrid()una seconda volta per creare una griglia perlr.elasticNetParamche includa solo i valori[0, 1]. - Chiama il metodo
.build()sugride sovrascrivilo con l'output.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()