Passo a passo com K-nearest neighbors
Você acabou de ver como K-nearest neighbors pode ser usado para inferir como alguém avaliaria um item com base na sabedoria de uma multidão (similar). Neste exercício, você vai percorrer esse processo por conta própria para garantir que entendeu bem como ele funciona.
Para começar, como você já gerou matrizes de similaridade muitas vezes antes, essa etapa já foi feita para você: a matriz de similaridade de usuários está em um DataFrame carregado como user_similarities.
Nele, cada usuário aparece como linhas e colunas, e onde se cruzam está a respectiva pontuação de similaridade.
Neste exercício, você vai trabalhar com as pontuações de similaridade de user_001, encontrar seus vizinhos mais próximos e, com base nas notas que esses vizinhos deram a um filme, inferir que nota user_001 poderia dar se tivesse assistido.
Este exercício faz parte do curso
Construindo mecanismos de recomendação em Python
Instruções do exercício
- Encontre os IDs dos 10 vizinhos mais próximos de
User_Aextraindo os 10 usuários do topo emordered_similaritiese armazenando-os emnearest_neighbors. - Extraia, de
user_ratings_table, as avaliações que os usuários emnearest_neighborsderam, salvando-as emneighbor_ratings. - Calcule a nota média que esses usuários deram ao filme
Apollo 13 (1995)para inferir que notaUser_Apoderia dar se tivesse assistido.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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)'].____())