ComenzarEmpieza gratis

Métrica de similitud de usuarios

Después de escribir una función para calcular el conjunto de nodos que comparten dos nodos, ahora vas a implementar una función que calcule una métrica de similitud entre dos usuarios: el número de proyectos compartidos entre dos usuarios dividido por el número total de nodos en la otra partición. Luego podrás usarla para encontrar usuarios similares entre sí.

Este ejercicio forma parte del curso

Análisis de redes intermedio en Python

Ver curso

Instrucciones del ejercicio

  • Completa la función user_similarity() para calcular la similitud entre user1 y user2.
    • Usa sentencias assert para comprobar que user1 y user2 pertenecen a la partición 'users'.
    • Usa tu función shared_partition_nodes() del ejercicio anterior para obtener el conjunto de nodos compartidos entre los usuarios user1 y user2.
    • Devuelve la fracción respecto a los nodos de la partición projects. Es decir, divide el número de shared_nodes entre el número total de nodos en la partición 'projects'.
  • Calcula la puntuación de similitud entre los usuarios 'u4560' y 'u1880'. Para ello:
    • Primero, obtén los nodos de la partición 'projects' usando tu función get_nodes_from_partition().
    • Luego, usa tu función user_similarity() para calcular la puntuación.

Ejercicio interactivo práctico

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

def user_similarity(G, user1, user2, proj_nodes):
    # Check that the nodes belong to the 'users' partition
    ____ G.nodes[____]['bipartite'] == '____'
    ____ G.nodes[____]['bipartite'] == '____'

    # Get the set of nodes shared between the two users
    shared_nodes = ____

    # Return the fraction of nodes in the projects partition
    return len(____) / len(____)

# Compute the similarity score between users 'u4560' and 'u1880'
project_nodes = ____
similarity_score = ____

print(similarity_score)
Editar y ejecutar código