Modellbewertung mit MSE
Nachdem du mit dem ALS-Modell die vorhergesagten Bewertungen für die Testdaten erstellt hast, bereitest du in diesem letzten Teil der Übung die Daten für die Berechnung des mittleren quadratischen Fehlers (MSE) des Modells vor. Der MSE ist der Durchschnittswert von (original rating – predicted rating)**2
für alle Benutzer und zeigt die absolute Anpassung des Modells an die Daten an.
Für diesen Schritt ordnest du zunächst die RDDs ratings_final
und predictions
, um ein Tupel der Form ((Benutzer, Produkt), Bewertung)) zu erhalten. Das Mapping für beide RDDs ist:
0: user
1: product
2: rating
Dann verknüpfst du die transformierten RDDs und wendest schließlich eine quadratische Differenzfunktion zusammen mit mean()
an, um den MSE zu erhalten.
Zur Erinnerung: Der SparkContext sc
ist schon im Arbeitsbereich verfügbar. Außerdem sind die RDDs ratings_final
und predictions
bereits im Arbeitsbereich vorhanden.
Diese Übung ist Teil des Kurses
Grundlagen von Big Data mit PySpark
Anleitung zur Übung
- Bringe den RDD
ratings
in die Form((user, product), rating)
. - Bringe den RDD
predictions
in die Form((user, product), rating)
. - Verknüpfe den „Predictions“-RDD mit dem „Ratings“-RDD.
- Evaluiere das Modell anhand des mittleren quadratischen Fehlers (MSE) zwischen der ursprünglichen Bewertung und der vorhergesagten Bewertung. Gib das Ergebnis aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(____))