Đánh giá mô hình bằng MSE
Sau khi tạo các điểm đánh giá dự đoán từ dữ liệu kiểm tra bằng mô hình ALS, ở phần cuối của bài tập này, bạn sẽ chuẩn bị dữ liệu để tính Mean Square Error (MSE) của mô hình. MSE là giá trị trung bình của (original rating – predicted rating)**2 cho tất cả người dùng và cho biết mức độ khớp tuyệt đối của mô hình với dữ liệu.
Để làm điều này, trước tiên bạn sẽ tổ chức cả hai RDD ratings_final và predictions về dạng bộ ((user, product), rating). Trong cả hai RDD, ánh xạ là:
0: user
1: product
2: rating
Sau đó bạn sẽ join các RDD đã biến đổi và cuối cùng áp dụng hàm bình phương sai khác cùng với mean() để lấy MSE.
Lưu ý, bạn có sẵn SparkContext sc trong không gian làm việc. Ngoài ra, RDD ratings_final và predictions cũng đã có sẵn trong không gian làm việc của bạn.
Bài tập này là một phần của khóa học
Nền tảng Big Data với PySpark
Hướng dẫn bài tập
- Sắp xếp RDD
ratingsthành dạng((user, product), rating). - Sắp xếp RDD
predictionsthành dạng((user, product), rating). - Join RDD dự đoán với RDD đánh giá gốc.
- Đánh giá mô hình bằng MSE giữa điểm gốc và điểm dự đoán rồi in ra.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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(____))