建立隱式模型
現在你已經指定所有超參數值,接下來讓 Spark 建立足夠的模型來測試每一種組合。為了做到這點,這裡提供了一個 for 迴圈。請依照下方說明自動建立這些 ALS 模型。在接下來的練習中,你會在測試資料集上執行這些模型,看看哪一個表現最佳。
ALS 演算法已經幫你匯入。你在上一個練習建立的那些列表(ranks、maxIters、regParams、alphas)也已為你準備好。
本練習屬於課程
使用 PySpark 打造推薦引擎
練習說明
- 這裡提供了一個名為
model_list的空列表。for迴圈會針對每一組給定的超參數組合建立一個模型,並將其加入model_list。 - 完成
for迴圈,引用各列表的內容,其中r代表ranks列表的元素,mi代表maxIters列表的元素,rp代表regParams列表的元素,a代表alphas列表的元素。 - 列印
len(model_list)與model_list,確認每個模型都已建立。長度應等於上述各超參數列表長度的乘積。你也可以執行提供的額外驗證來確定無誤。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# For loop will automatically create and store ALS models
for r in ____:
for mi in ____:
for rp in ____:
for a in ____:
model_list.append(ALS(userCol= "userId", itemCol= "songId", ratingCol= "num_plays", rank = r, maxIter = mi, regParam = rp, alpha = a, coldStartStrategy="drop", nonnegative = True, implicitPrefs = True))
# Print the model list, and the length of model_list
print (model_list, "Length of model_list: ", len(____))
# Validate
len(model_list) == (len(ranks)*len(maxIters)*len(regParams)*len(alphas))