开始使用免费开始使用

构建一个 ALS 模型

让我们来指定您的第一个 ALS 模型。完成下方代码以构建您的第一个 ALS 模型。

回顾一下,您可以在 ratings 数据框上使用 .columns 方法,查看包含用户、电影和评分数据的列名。Spark 需要知道这些列的名称,才能正确执行 ALS。

本练习是课程的一部分

使用 PySpark 构建推荐引擎

查看课程

练习说明

  • 在构建 ALS 模型之前,需要将数据划分为训练数据和测试数据。使用 randomSplit() 方法,将 ratings 数据框按 0.8/0.2 比例分别拆分为 training_datatest_data,并将随机数生成器的 seed 设为 42
  • 告诉 Spark 哪些列是 userColitemColratingCol。必要时可使用 .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()
编辑并运行代码