Ergeben die Empfehlungen Sinn
Jetzt, da wir verstanden haben, wie gut unser Modell abgeschnitten hat, und wir zuversichtlich sind, dass es für Nutzer relevante Empfehlungen liefert, schauen wir uns tatsächlich einmal die Empfehlungen für einen Nutzer an und prüfen, ob sie sinnvoll sind.
Die ursprünglichen Bewertungsdaten findest du hier als original_ratings. Sieh dir die ursprünglichen Bewertungen von Nutzer 60 und Nutzer 63 an und vergleiche sie mit den ALS-Empfehlungen für diese Nutzer. Deiner Meinung nach: Sind die Empfehlungen mit ihren ursprünglichen Vorlieben konsistent?
Diese Übung ist Teil des Kurses
<Kurs>Recommendation Engines mit PySpark erstellen</Kurs>Übungsanweisungen
- Verwende
.filter()auf dem DataFrameoriginal_ratings, sodasscol("userId")gleich60ist, um dir die ursprünglichen Bewertungen von Nutzer 60 anzusehen. Rufe anschließend.sort()auf, um die Ausgabe nachratingzu sortieren, und setze das ArgumentascendingaufFalse, damit die höchsten Bewertungen zuerst erscheinen. - Verwende die Methoden
.filter()und.show()auf dem Datensatzrecommendations, um dir die Bewertungen für Nutzer 60 anzusehen. Beachte: Wenn ALS Empfehlungen generiert, werden sie in absteigender Reihenfolge pro userId bereitgestellt, daher musst du den DataFrame nicht sortieren. - Wiederhole das Gleiche für Nutzer 63.
- Sind die Genres der Empfehlungen in sich schlüssig im Vergleich zu den ursprünglichen Bewertungen jedes Nutzers?
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# Look at user 60's ratings
print("User 60's Ratings:")
original_ratings.filter(col("____") == 60).____("rating", ____ = False).show()
# Look at the movies recommended to user 60
print("User 60s Recommendations:")
____.____(col("userId") == ____).show()
# Look at user 63's ratings
print("User 63's Ratings:")
original_ratings.filter(col("____") == ____).____("rating", ____ = False).show()
# Look at the movies recommended to user 63
print("User 63's Recommendations:")
____.____(col("userId") == ____).show()