开始使用免费开始使用

使用 MSE 评估模型

在使用 ALS 模型从测试数据生成预测评分后,在本练习的最后一部分,您将准备数据以计算模型的均方误差(MSE)。MSE 是所有用户的 (original rating – predicted rating)**2 的平均值,用于反映模型对数据的绝对拟合程度。

为此,首先将 ratings_finalpredictions 两个 RDD 都组织为 ((user, product), rating) 的二元组。在这两个 RDD 中,映射关系为:

0: user
1: product
2: rating

然后将变换后的 RDD 进行连接,最后应用平方差函数并结合 mean() 得到 MSE。

请记住,您的工作区中已提供 SparkContext sc。此外,ratings_finalpredictions RDD 也已经可用。

本练习是课程的一部分

使用 PySpark 的大数据基础

查看课程

练习说明

  • ratings RDD 组织为 ((user, product), rating)
  • predictions RDD 组织为 ((user, product), rating)
  • 将预测 RDD 与实际评分 RDD 进行连接。
  • 计算原始评分与预测评分之间的 MSE 来评估模型,并打印结果。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Prepare ratings data
rates = ratings_final.____(lambda r: ((r[0], r[1]), ____))

# Prepare predictions data
preds = predictions.____(lambda r: ((____, ____), ____))

# Join the ratings data with predictions data
rates_and_preds = rates.____(preds)

# Calculate and print MSE
MSE = rates_and_preds.____(lambda r: (r[1][0] - r[1]____)**2).mean()
print("Mean Squared Error of the model for the test data = {:.2f}".format(____))
编辑并运行代码