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.tuningunter dem Aliastune. - Rufe den Klassenkonstruktor
ParamGridBuilder()ohne Argumente auf. Speichere dies alsgrid. - Rufe die Methode
.addGrid()aufgridmitlr.regParamals 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. Überschreibegridmit dem Ergebnis. - Aktualisiere
griderneut, 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()aufgridauf und überschreibe sie mit der Ausgabe.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()