CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Trouvez les identifiants des 10 plus proches voisins de User_A en extrayant les 10 premiers utilisateurs dans ordered_similarities et en les stockant dans nearest_neighbors.
  • Extrayez, depuis user_ratings_table, les notes attribuées par les utilisateurs de nearest_neighbors et stockez-les dans neighbor_ratings.
  • Calculez la note moyenne que ces utilisateurs ont donnée au film Apollo 13 (1995) afin d’inférer la note que User_A pourrait 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)'].____())
Modifier et exécuter le code