使用 PySpark 打造推薦引擎
Jamen Long
Data Scientist at Nike
als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
引數
userCol:包含使用者 ID 的欄位名稱 itemCol:包含項目 ID 的欄位名稱 ratingCol:包含評分的欄位名稱

als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
超參數
rank,$k$:潛在特徵數als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
超參數
rank,$k$:潛在特徵數maxIter:迭代次數als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
超參數
rank,$k$:潛在特徵數maxIter:迭代次數regParam:Lambdaals_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
超參數
rank,$k$:潛在特徵數maxIter:迭代次數regParam:Lambdaalpha:稍後說明。僅用於隱式評分。als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
其他引數
nonnegative = True:確保為正數als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
其他引數
nonnegative = True:確保為正數coldStartStrategy = "drop":處理訓練/測試切分問題als_model = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05, alpha=40,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
其他引數
nonnegative = True:確保為正數coldStartStrategy = "drop":處理訓練/測試切分問題implicitPrefs = True:依評分型態設 True/Falseals = ALS(userCol="userId", itemCol="movieId", ratingCol="rating",
rank=25, maxIter=100, regParam=.05,
nonnegative=True,
coldStartStrategy="drop",
implicitPrefs=False)
# 將 ALS 擬合到訓練資料集
model = als.fit(training_data)
# 在測試資料集產生預測
predictions = model.transform(test_data)
使用 PySpark 打造推薦引擎