Ein ALS-Modell aufbauen
Lass uns dein erstes ALS-Modell spezifizieren. Vervollständige den Code unten, um dein erstes ALS-Modell zu erstellen.
Denk daran: Du kannst die Methode .columns auf dem DataFrame ratings verwenden, um die Spaltennamen für Nutzer-, Film- und Bewertungsdaten zu sehen. Spark muss diese Spaltennamen kennen, um ALS korrekt auszuführen.
Diese Übung ist Teil des Kurses
<Kurs>Recommendation Engines mit PySpark erstellen</Kurs>Übungsanweisungen
- Bevor wir unser ALS-Modell bauen, müssen wir die Daten in Trainings- und Testdaten aufteilen. Verwende die Methode
randomSplit(), um den DataFrameratingsintraining_dataundtest_datamit einem 0,8/0,2-Split aufzuteilen und setze denseedfür den Zufallszahlengenerator auf42. - Teile Spark mit, welche Spalten
userCol,itemColundratingColenthalten. Nutze bei Bedarf die Methode.columns. Vervollständige die Hyperparameter: Setzerankauf 10,maxIterauf 15,regParam(Lambda) auf .1,coldStartStrategyauf"drop",nonnegativeaufTrueund, da unsere Daten explizite Bewertungen enthalten,implicitPrefsaufFalse. - Fitte nun das
als-Modell auf den Teiltraining_dataderratings-Daten, indem duals.fit()auf den gegebenentraining_dataaufrufst. Nenne das gefittete Modellmodel. - Erzeuge Vorhersagen auf dem Teil
test_dataderratings-Daten, indem dumodel.transform()auf dem gegebenentest_dataaufrufst. Nenne die Vorhersagentest_predictions. Du kannst dir die Vorhersagen mit der Methode.show()auftest_predictionsansehen.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Split the ratings dataframe into training and test data
(training_data, test_data) = ratings.____([____, ____], seed=42)
# Set the ALS hyperparameters
from pyspark.ml.recommendation import ALS
als = ALS(userCol="____", itemCol="____", ratingCol="____", rank =____, maxIter =____, regParam =____,
coldStartStrategy="____", nonnegative =____, implicitPrefs = ____)
# Fit the mdoel to the training_data
____ = ____.fit(____)
# Generate predictions on the test_data
____ = ____.transform(____)
test_predictions.show()