建立 ALS 模型
來指定你的第一個 ALS 模型。請完成下方程式碼,建立你的第一個 ALS 模型。
記得你可以在 ratings 資料框上使用 .columns 方法,查看包含使用者、電影與評分資料的欄位名稱。Spark 需要知道這些欄位名稱,才能正確執行 ALS。
本練習屬於課程
使用 PySpark 打造推薦引擎
練習說明
- 在建立 ALS 模型之前,先把資料分成訓練資料與測試資料。使用
randomSplit()方法,將ratings資料框以 0.8/0.2 的比例分成training_data和test_data,並將隨機數產生器的seed設為42。 - 告訴 Spark 哪些欄位是
userCol、itemCol和ratingCol。需要時可使用.columns方法。完成超參數設定:將rank設為 10、maxIter設為 15、regParam(lambda)設為 .1、coldStartStrategy設為"drop"、nonnegative設為True,且因為資料包含顯性評分,將implicitPrefs設為False。 - 透過在提供的
training_data上呼叫als.fit(),將als模型擬合到ratings的training_data區段。把擬合後的模型命名為model。 - 透過在提供的
test_data上呼叫model.transform(),在ratings的test_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()