Encontrar películas con gustos similares
Igual que calculaste la similitud entre dos películas, puedes calcularla para todos los usuarios y así encontrar la película más parecida a otra según cómo las han valorado los usuarios.
El enfoque es similar al que usaste con el filtrado basado en contenido.
Primero obtendrás las puntuaciones de similitud entre todas las películas y luego te centrarás en la película de interés aislando y ordenando la columna que contiene sus similitudes.
movie_ratings_centered se ha cargado de nuevo; contiene cada película como una fila y sus valoraciones centradas como valores.
Este ejercicio forma parte del curso
Creación de motores de recomendación en Python
Instrucciones del ejercicio
- Calcula la matriz de similitud entre todas las películas en
movie_ratings_centeredy guárdala como similarities. - Envuelve la matriz
similaritiesen un DataFrame, usando los índices demovie_ratings_centeredcomo columnas y filas.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
from sklearn.metrics.pairwise import cosine_similarity
# Generate the similarity matrix
similarities = ____(____)
# Wrap the similarities in a DataFrame
cosine_similarity_df = ____.____(____, index=____.____, columns=____.____)
# Find the similarity values for a specific movie
cosine_similarity_series = cosine_similarity_df.loc['Star Wars: Episode IV - A New Hope (1977)']
# Sort these values highest to lowest
ordered_similarities = cosine_similarity_series.sort_values(ascending=False)
print(ordered_similarities)