Aan de slagBegin gratis

Bouw een ALS-model

Laten we je eerste ALS-model specificeren. Maak de code hieronder af om je eerste ALS-model te bouwen.

Onthoud dat je de methode .columns op het ratings-dataframe kunt gebruiken om te zien hoe de kolommen heten die de gebruikers-, film- en beoordelingsgegevens bevatten. Spark moet deze kolomnamen weten om ALS correct uit te voeren.

Deze oefening maakt deel uit van de cursus

Aanbevelingssystemen bouwen met PySpark

Bekijk cursus

Oefeninstructies

  • Voordat we ons ALS-model bouwen, moeten we de data splitsen in trainingsdata en testdata. Gebruik de methode randomSplit() om het ratings-dataframe te splitsen in training_data en test_data met respectievelijk een 0,8/0,2-split en een seed voor de willekeurigegetalgenerator van 42.
  • Vertel Spark welke kolommen de userCol, itemCol en ratingCol bevatten. Gebruik indien nodig de methode .columns. Vul de hyperparameters in. Zet de rank op 10, de maxIter op 15, de regParam of lambda op .1, de coldStartStrategy op "drop", het argument nonnegative op True, en omdat onze data expliciete beoordelingen bevat, zet je het argument implicitPrefs op False.
  • Fit nu het als-model op het training_data-gedeelte van de ratings-data door de methode als.fit() aan te roepen op de meegegeven training_data. Noem het gefitte model model.
  • Genereer voorspellingen op het test_data-gedeelte van de ratings-data door de methode model.transform() aan te roepen op de meegegeven test_data. Noem de voorspellingen test_predictions. Je kunt de voorspellingen bekijken door de methode .show() aan te roepen op test_predictions.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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()
Code bewerken en uitvoeren