Är rekommendationerna rimliga
Nu när vi har en uppfattning om hur väl modellen presterar och är rimligt säkra på att den ger relevanta rekommendationer, är det dags att faktiskt titta på rekommendationerna för en enskild användare och bedöma om de verkar vettiga.
Den ursprungliga betygsdata finns tillgänglig som original_ratings. Titta på de ursprungliga betygen för användare 60 och användare 63, och jämför dem med vad ALS rekommenderade för dem. Tycker du att rekommendationerna stämmer överens med deras ursprungliga preferenser?
Den här övningen är en del av kursen
Bygg rekommendationsmotorer med PySpark
Övningsinstruktioner
- Använd
.filter()på dataramenoriginal_ratingsför att filtrera fram de rader därcol("userId")är lika med60, och se användarens ursprungliga betyg. Anropa.sort()och sortera utdata efterratingmed argumentetascendingsatt tillFalse, så att de högsta betygen visas först. - Använd metoderna
.filter()och.show()på datamängdenrecommendationsför att se rekommendationerna för användare 60. Observera att ALS genererar rekommendationerna i fallande ordning efteruserId, så det behövs ingen ytterligare sortering av dataramen. - Gör samma sak för användare 63.
- Har de rekommenderade genrerna något samband med varje användares ursprungliga betyg?
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()