Parcourir l’algorithme des K plus proches voisins
Vous venez de voir comment les K plus proches voisins peuvent servir à déduire la note qu’une personne pourrait attribuer à un élément en s’appuyant sur la sagesse d’un groupe (similaire). Dans cet exercice, vous allez parcourir vous-même ce processus pour bien comprendre son fonctionnement.
Pour vous faire gagner du temps, comme vous avez déjà généré des matrices de similarité à plusieurs reprises, cette étape a été effectuée pour vous : la matrice de similarité entre utilisateurs a été encapsulée dans un DataFrame chargé sous le nom user_similarities.
Chaque utilisateur apparaît à la fois en lignes et en colonnes, et leur intersection contient le score de similarité correspondant.
Dans cet exercice, vous allez travailler avec les scores de similarité de user_001, trouver ses plus proches voisins et, à partir des notes que ces voisins ont attribuées à un film, déduire la note que user_001 pourrait lui donner s’il le voyait.
Cet exercice fait partie du cours
Créer des moteurs de recommandation en Python
Instructions
- Trouvez les identifiants des 10 plus proches voisins de
User_Aen extrayant les 10 premiers utilisateurs dansordered_similaritieset en les stockant dansnearest_neighbors. - Extrayez, depuis
user_ratings_table, les notes attribuées par les utilisateurs denearest_neighborset stockez-les dansneighbor_ratings. - Calculez la note moyenne que ces utilisateurs ont donnée au film
Apollo 13 (1995)afin d’inférer la note queUser_Apourrait lui attribuer s’il l’avait vu.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)'].____())