Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Vind de ID's van de 10 dichtstbijzijnde buren van User_A door de top 10 gebruikers uit ordered_similarities te halen en op te slaan als nearest_neighbors.
  • Haal de beoordelingen op die de gebruikers in nearest_neighbors hebben gegeven uit user_ratings_table als neighbor_ratings.
  • Bereken de gemiddelde beoordeling die deze gebruikers gaven aan de film Apollo 13 (1995) om af te leiden welke score User_A waarschijnlijk 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)'].____())
Code bewerken en uitvoeren