Passo dopo passo con K-nearest neighbors
Hai appena visto come K-nearest neighbors può essere usato per dedurre come qualcuno potrebbe valutare un elemento basandosi sulla saggezza di una folla (simile). In questo esercizio, ripercorrerai tu stesso questo processo per assicurarti di capirne bene il funzionamento.
Per iniziare, dato che hai già generato matrici di similarità molte volte, questo passaggio è stato fatto per te: la matrice di similarità tra utenti è incapsulata in un DataFrame caricato come user_similarities.
Questo ha ogni utente sia come righe sia come colonne, e all’incrocio trovi il relativo punteggio di similarità.
In questo esercizio lavorerai con i punteggi di similarità di user_001, troverai i suoi vicini più prossimi e, in base alle valutazioni che quei vicini hanno dato a un film, dedurrai quale voto user_001 potrebbe assegnargli se lo vedesse.
Questo esercizio fa parte del corso
Creare motori di raccomandazione in Python
Istruzioni dell'esercizio
- Trova gli ID dei 10 vicini più prossimi di
User_Aestraendo i primi 10 utenti inordered_similaritiese salvali comenearest_neighbors. - Estrai le valutazioni che gli utenti in
nearest_neighborshanno dato dauser_ratings_tablecomeneighbor_ratings. - Calcola la valutazione media che questi utenti hanno dato al film
Apollo 13 (1995)per dedurre quale votoUser_Apotrebbe dargli se lo avesse visto.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)'].____())