Ein Raster erstellen
Als Nächstes musst du ein Raster von Werten erstellen, das du durchsuchen kannst, um die optimalen Hyperparameter zu finden. Das Untermodul pyspark.ml.tuning
enthält eine Klasse namens ParamGridBuilder
, die genau das tut (vielleicht erkennst du hier ein Muster; PySpark hat für fast alles ein Untermodul!).
Du musst die Methoden .addGrid()
und .build()
verwenden, um ein Raster zu erstellen, das du für die Kreuzvalidierung verwenden kannst. Die Methode .addGrid()
nimmt einen Modellparameter (ein Attribut des Modells Estimator
, lr
, das du vor ein paar Aufgaben erstellt hast) und eine Liste von Werten, die du ausprobieren möchtest, entgegen.
Die Methode .build()
braucht keine Argumente, sie gibt nur das Raster zurück, das du später verwenden wirst.
Diese Übung ist Teil des Kurses
Einführung in PySpark
Anleitung zur Übung
- Importiere das Untermodul
pyspark.ml.tuning
unter dem Aliastune
. - Rufe den Klassenkonstruktor
ParamGridBuilder()
ohne Argumente auf. Speichere dies alsgrid
. - Rufe die Methode
.addGrid()
aufgrid
mitlr.regParam
als erstem Argument undnp.arange(0, .1, .01)
als zweitem Argument auf. Dieser zweite Aufruf ist eine Funktion aus dem Modulnumpy
(importiertas np
), die eine Liste mit Zahlen von 0 bis 0,1 erstellt, die um 0,01 erhöht wird. Überschreibegrid
mit dem Ergebnis. - Aktualisiere
grid
erneut, indem du die Methode.addGrid()
ein zweites Mal aufrufst. Erstelle ein Raster fürlr.elasticNetParam
, das nur die Werte[0, 1]
enthält. - Rufe die Methode
.build()
aufgrid
auf und überschreibe sie mit der Ausgabe.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# 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()