LoslegenKostenlos starten

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>
Kurs ansehen

Übungsanweisungen

  • Hier ist eine leere Liste namens model_list vorgegeben. Die for-Schleife erstellt für jede Hyperparameter-Kombination ein Modell und legt es in model_list ab.
  • Vervollständige die for-Schleife, indem du auf die Inhalte jeder Liste verweist, wobei r für die Elemente der Liste ranks, mi für die Elemente der Liste maxIters, rp für die Elemente der Liste regParams und a für die Elemente der Liste alphas steht.
  • Gib len(model_list) sowie model_list aus, 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))
Code bearbeiten und ausführen