Kom igångKom igång gratis

Bygg en ALS-modell

Nu ska du specificera din första ALS-modell. Komplettera koden nedan för att bygga din första ALS-modell.

Kom ihåg att du kan använda metoden .columns på dataramen ratings för att se namnen på de kolumner som innehåller användar-, film- och betygsdata. Spark behöver känna till namnen på dessa kolumner för att kunna utföra ALS korrekt.

Den här övningen är en del av kursen

Bygg rekommendationsmotorer med PySpark

Visa kurs

Övningsinstruktioner

  • Innan vi bygger vår ALS-modell behöver vi dela upp datan i träningsdata och testdata. Använd metoden randomSplit() för att dela upp dataramen ratings i training_data och test_data med en uppdelning på 0,8/0,2 respektive, och ange seed för slumptalsgeneratorn till 42.
  • Tala om för Spark vilka kolumner som innehåller userCol, itemCol och ratingCol. Använd metoden .columns vid behov. Komplettera hyperparametrarna. Sätt rank till 10, maxIter till 15, regParam (lambda) till .1, coldStartStrategy till "drop", argumentet nonnegative ska sättas till True, och eftersom vår data innehåller explicita betyg, sätt argumentet implicitPrefs till False.
  • Anpassa nu als-modellen till training_data-delen av ratings-datan genom att anropa metoden als.fit() på den angivna training_data. Kalla den anpassade modellen model.
  • Generera förutsägelser på test_data-delen av ratings-datan genom att anropa metoden model.transform() på den angivna test_data. Kalla förutsägelserna test_predictions. Du kan gärna granska förutsägelserna genom att anropa metoden .show()test_predictions.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod