建立測試/訓練切分並打造你的 ALS 模型
你已經在前一章練習過如何建立 ALS 模型。這裡我們會再做一次,不過會再多幾個步驟,把交叉驗證的完整流程搭建起來。
首先,先匯入所需的函式,並建立訓練與測試資料集,為後續的交叉驗證做準備。
本練習屬於課程
使用 PySpark 打造推薦引擎
練習說明
- 從
ml.evaluation匯入RegressionEvaluator,從ml.recommendation匯入ALS演算法,並從ml.tuning匯入ParamGridBuilder與CrossValidator。 - 使用
randomSplit方法,對ratings資料做 0.80/0.20 的訓練/測試切分。將資料集命名為train與test,並將隨機種子設為1234。 - 建立 ALS 模型,告訴 Spark 在
ratings資料框中哪些欄位分別對應userCol、itemCol和ratingCol。將nonnegative參數設為True、coldStartStrategy設為"drop",並將implicitPrefs參數設為False,讓 Spark 知道這不是隱式偏好。將此模型命名為als。 - 透過對
als呼叫type()函式來確認模型已建立。輸出應該會顯示這是哪一種模型。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Import the required functions
from pyspark.ml.evaluation import ____
from pyspark.ml.recommendation import ____
from pyspark.ml.tuning import ____, ____
# Create test and train set
(train, test) = ratings.___([0.____, 0.____], seed = ____)
# Create ALS model
als = ALS(userCol="____", itemCol="____", ratingCol="____", nonnegative = ____, implicitPrefs = ____)
# Confirm that a model called "als" was created
type(____)