构建一个 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。 - 现在将
als模型拟合到ratings数据的training_data部分,在给定的training_data上调用als.fit()方法。将拟合后的模型命名为model。 - 在
ratings数据的test_data部分生成预测,在给定的test_data上调用model.transform()方法。将预测命名为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()