Recorriendo K-nearest neighbors
Acabas de ver cómo K-nearest neighbors puede usarse para inferir cómo alguien podría puntuar un ítem basándose en la sabiduría de una multitud (similar). En este ejercicio, recorrerás tú mismo este proceso para asegurarte de comprender bien cómo funciona.
Para empezar, como ya has generado matrices de similitud muchas veces, ese paso ya está hecho por ti: la matriz de similitud de usuarios está envuelta en un DataFrame cargado como user_similarities.
Esta tiene cada usuario como filas y columnas, y donde se cruzan está la puntuación de similitud correspondiente.
En este ejercicio, trabajarás con las puntuaciones de similitud de user_001, encontrarás a sus vecinos más cercanos y, basándote en las puntuaciones que esos vecinos dieron a una película, inferir qué puntuación podría darle user_001 si la viera.
Este ejercicio forma parte del curso
Creación de motores de recomendación en Python
Instrucciones del ejercicio
- Encuentra los IDs de los 10 vecinos más cercanos de
User_Aextrayendo los 10 primeros usuarios enordered_similaritiesy guárdalos comonearest_neighbors. - Extrae, de
user_ratings_table, las puntuaciones que dieron los usuarios ennearest_neighborsy guárdalas comoneighbor_ratings. - Calcula la puntuación media que estos usuarios dieron a la película
Apollo 13 (1995)para inferir qué podría darleUser_Asi la hubiera visto.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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)'].____())