ComenzarEmpieza gratis

Comparar todas tus películas a la vez

Calcular la similitud de Jaccard entre dos películas concretas de tu conjunto de datos está bien para análisis a pequeña escala, pero puede ser lento en conjuntos de datos grandes para hacer recomendaciones.

En este ejercicio, vas a encontrar las similitudes entre todas las películas y guardarlas en un DataFrame para consultarlas de forma rápida y sencilla.

Al calcular las similitudes entre las filas de un DataFrame, podrías recorrer todos los pares y calcularlas una a una, pero es más eficiente usar la función pdist() (distancia por pares) de scipy.

Esto puede reestructurarse a la forma rectangular deseada usando squareform() de la misma biblioteca. Como quieres valores de similitud en lugar de distancias, debes restar los valores a 1.

movie_cross_table se ha cargado de nuevo para ti.

Este ejercicio forma parte del curso

Creación de motores de recomendación en Python

Ver curso

Instrucciones del ejercicio

  • Encuentra las medidas de distancia de Jaccard entre todas las películas y asigna los resultados a jaccard_similarity_array.
  • Crea un DataFrame a partir de jaccard_similarity_array usando movie_genre_df.index como sus filas y columnas.
  • Imprime las 5 primeras filas del DataFrame y examina las puntuaciones de similitud.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Import functions from scipy
from scipy.spatial.distance import pdist, squareform

# Calculate all pairwise distances
jaccard_distances = ____(movie_cross_table.values, metric='____')

# Convert the distances to a square matrix
jaccard_similarity_array = 1 - ____(____)

# Wrap the array in a pandas DataFrame
jaccard_similarity_df = pd.____(jaccard_similarity_array, ____=movie_cross_table.index, ____=movie_cross_table.index)

# Print the top 5 rows of the DataFrame
print(jaccard_similarity_df.head())
Editar y ejecutar código