Implizite Modelle bauen
Jetzt, wo du alle Hyperparameterwerte festgelegt hast, soll Spark genug Modelle bauen, um jede Kombination zu testen. Dafür steht hier eine for-Schleife bereit. Folge den Anweisungen unten, um diese ALS-Modelle automatisch zu erstellen. In den nächsten Aufgaben führst du diese Modelle auf Testdatensätzen aus, um zu sehen, welches am besten abschneidet.
Der ALS-Algorithmus ist bereits für dich importiert. Die Listen, die du in der letzten Übung erstellt hast (ranks, maxIters, regParams, alphas), wurden für dich angelegt.
Diese Übung ist Teil des Kurses
<Kurs>Recommendation Engines mit PySpark erstellen</Kurs>Übungsanweisungen
- Hier ist eine leere Liste namens
model_listvorgegeben. Diefor-Schleife erstellt für jede Hyperparameter-Kombination ein Modell und legt es inmodel_listab. - Vervollständige die
for-Schleife, indem du auf die Inhalte jeder Liste verweist, wobeirfür die Elemente der Listeranks,mifür die Elemente der ListemaxIters,rpfür die Elemente der ListeregParamsundafür die Elemente der Listealphassteht. - Gib
len(model_list)sowiemodel_listaus, um sicherzustellen, dass jedes Modell erstellt wurde. Die Länge sollte dem Produkt aller Längen der oben genannten Hyperparameterlisten entsprechen. Du kannst die zusätzliche Validierung ausführen, um sicherzugehen.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# For loop will automatically create and store ALS models
for r in ____:
for mi in ____:
for rp in ____:
for a in ____:
model_list.append(ALS(userCol= "userId", itemCol= "songId", ratingCol= "num_plays", rank = r, maxIter = mi, regParam = rp, alpha = a, coldStartStrategy="drop", nonnegative = True, implicitPrefs = True))
# Print the model list, and the length of model_list
print (model_list, "Length of model_list: ", len(____))
# Validate
len(model_list) == (len(ranks)*len(maxIters)*len(regParams)*len(alphas))