Stap voor stap door K-nearest neighbors
Je hebt zojuist gezien hoe K-nearest neighbors kan worden gebruikt om te voorspellen hoe iemand een item zou beoordelen op basis van de wijsheid van een (vergelijkbare) groep. In deze oefening loop je dit proces zelf door, zodat je goed begrijpt hoe het werkt.
Om je op weg te helpen: omdat je al vaak eerder similariteitsmatrices hebt gemaakt, is die stap voor je gedaan. De gebruikerssimilariteitsmatrix is in een DataFrame geladen als user_similarities.
Hierin staan alle gebruikers als rijen en kolommen, met op de kruising de bijbehorende similariteitsscore.
In deze oefening werk je met de similariteitsscores van user_001, zoek je diens dichtstbijzijnde buren en leid je op basis van de beoordelingen die die buren een film gaven af welke beoordeling user_001 er waarschijnlijk aan zou geven als die de film had gezien.
Deze oefening maakt deel uit van de cursus
Aanbevelingssystemen bouwen in Python
Oefeninstructies
- Vind de ID's van de 10 dichtstbijzijnde buren van
User_Adoor de top 10 gebruikers uitordered_similaritieste halen en op te slaan alsnearest_neighbors. - Haal de beoordelingen op die de gebruikers in
nearest_neighborshebben gegeven uituser_ratings_tablealsneighbor_ratings. - Bereken de gemiddelde beoordeling die deze gebruikers gaven aan de film
Apollo 13 (1995)om af te leiden welke scoreUser_Awaarschijnlijk zou geven als die de film had gezien.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Isolate the similarity scores for user_1 and sort
user_similarity_series = user_similarities.loc['user_001']
ordered_similarities = user_similarity_series.sort_values(ascending=False)
# Find the top 10 most similar users
nearest_neighbors = ordered_similarities[1:11].____
# Extract the ratings of the neighbors
neighbor_ratings = user_ratings_table.____(nearest_neighbors)
# Calculate the mean rating given by the users nearest neighbors
print(neighbor_ratings['Apollo 13 (1995)'].____())