開始使用免費開始

建立 ALS 模型

來指定你的第一個 ALS 模型。請完成下方程式碼,建立你的第一個 ALS 模型。

記得你可以在 ratings 資料框上使用 .columns 方法,查看包含使用者、電影與評分資料的欄位名稱。Spark 需要知道這些欄位名稱,才能正確執行 ALS。

本練習屬於課程

使用 PySpark 打造推薦引擎

檢視課程

練習說明

  • 在建立 ALS 模型之前,先把資料分成訓練資料與測試資料。使用 randomSplit() 方法,將 ratings 資料框以 0.8/0.2 的比例分成 training_datatest_data,並將隨機數產生器的 seed 設為 42
  • 告訴 Spark 哪些欄位是 userColitemColratingCol。需要時可使用 .columns 方法。完成超參數設定:將 rank 設為 10、maxIter 設為 15、regParam(lambda)設為 .1、coldStartStrategy 設為 "drop"nonnegative 設為 True,且因為資料包含顯性評分,將 implicitPrefs 設為 False
  • 透過在提供的 training_data 上呼叫 als.fit(),將 als 模型擬合到 ratingstraining_data 區段。把擬合後的模型命名為 model
  • 透過在提供的 test_data 上呼叫 model.transform(),在 ratingstest_data 區段產生預測。把預測命名為 test_predictions。你也可以呼叫 test_predictions.show() 方法來檢視預測結果。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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()
編輯並執行程式碼