Оцінювання моделі за допомогою MSE
Після отримання передбачених рейтингів з тестових даних за допомогою моделі ALS у цій завершальній частині вправи ви підготуєте дані для обчислення середньоквадратичної помилки (MSE) моделі. MSE — це середнє значення (original rating – predicted rating)**2 для всіх користувачів і воно показує абсолютну якість узгодження моделі з даними.
Для цього спочатку впорядкуйте RDD ratings_final і predictions, щоб отримати кортеж виду ((user, product), rating)). В обох RDD відображення таке:
0: user
1: product
2: rating
Потім об'єднайте перетворені RDD і, насамкінець, застосуйте функцію квадрата різниці разом із mean(), щоб отримати MSE.
Пам'ятайте, у вашому робочому середовищі доступний SparkContext sc. Також RDD ratings_final і predictions уже доступні у вашому середовищі.
Ця вправа є частиною курсу
Основи Big Data з PySpark
Інструкції до вправи
- Упорядкуйте RDD
ratings, щоб отримати((user, product), rating). - Упорядкуйте RDD
predictions, щоб отримати((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(____))