CommencezCommencez gratuitement

Parcourir l'algorithme des K plus proches voisins

Vous venez de voir comment l'algorithme des K plus proches voisins permet d'inférer la note qu'une personne pourrait attribuer à un élément en s'appuyant sur la sagesse d'un groupe (semblable). Dans cet exercice, vous allez parcourir vous-même ce processus pour bien comprendre son fonctionnement.

Pour vous lancer, comme vous avez déjà généré des matrices de similarité à plusieurs reprises, cette étape a été faite pour vous : la matrice de similarité d'utilisateurs est encapsulée dans un DataFrame chargé sous le nom user_similarities.

Chaque utilisateur y figure à la fois en lignes et en colonnes, et leur intersection contient le score de similarité correspondant.

Dans cet exercice, vous travaillerez avec les scores de similarité de user_001, trouverez ses voisins les plus proches et, en vous basant sur les notes que ces voisins ont attribuées à un film, inférerez la note que user_001 pourrait lui donner s'il le voyait.

Cette activité fait partie du cours

Créer des moteurs de recommandation en Python

Voir le cours

Instructions de l’exercice

  • 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, à partir de 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 ce code d’exemple.

# 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