Évaluation du modèle à l'aide de la MSE
Après avoir généré les cotes prédites à partir des données de test avec le modèle ALS, dans cette dernière partie de l'exercice, vous préparerez les données pour calculer la Mean Square Error (MSE) du modèle. La MSE correspond à la valeur moyenne de (original rating – predicted rating)**2 pour tous les utilisateurs et indique l'ajustement absolu du modèle aux données.
Pour ce faire, commencez par organiser les RDD ratings_final et predictions pour former un tuple de ((user, product), rating)). Dans les deux RDD, la correspondance est la suivante:
0: user
1: product
2: rating
Ensuite, joignez les RDD transformés et, pour finir, appliquez une fonction calculant la différence au carré, puis mean() pour obtenir la MSE.
N'oubliez pas que vous avez un SparkContext sc dans votre espace de travail. Les RDD ratings_final et predictions sont aussi déjà disponibles dans votre espace de travail.
Cette activité fait partie du cours
Principes de Big Data avec PySpark
Instructions de l’exercice
- Organisez le RDD
ratingspour obtenir((user, product), rating). - Organisez le RDD
predictionspour obtenir((user, product), rating). - Joignez le RDD des prédictions avec le RDD des cotes.
- Évaluez le modèle à l'aide de la MSE entre la cote originale et la cote prédite et affichez-la.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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(____))