Métrique de similarité entre utilisateurs
Après avoir écrit une fonction qui calcule l’ensemble des nœuds partagés entre deux nœuds, vous allez maintenant écrire une fonction pour calculer une métrique de similarité entre deux utilisateurs : le nombre de projets partagés entre deux utilisateurs divisé par le nombre total de nœuds dans l’autre partition. Vous pourrez ensuite l’utiliser pour trouver des utilisateurs similaires.
Cet exercice fait partie du cours
Analyse de réseaux intermédiaire en Python
Instructions
- Complétez la fonction
user_similarity()pour calculer la similarité entreuser1etuser2.- Utilisez des instructions
assertpour vérifier queuser1etuser2appartiennent à la partition'users'. - Utilisez votre fonction
shared_partition_nodes()de l’exercice précédent pour obtenir l’ensemble des nœuds partagés entre les deux utilisateursuser1etuser2. - Retournez la fraction par rapport aux nœuds de la partition
projects. Autrement dit, divisez le nombre deshared_nodespar le nombre total de nœuds dans la partition'projects'.
- Utilisez des instructions
- Calculez le score de similarité entre les utilisateurs
'u4560'et'u1880'. Pour cela :- Commencez par récupérer les nœuds de la partition
'projects'à l’aide de votre fonctionget_nodes_from_partition(). - Utilisez ensuite votre fonction
user_similarity()pour calculer le score.
- Commencez par récupérer les nœuds de la partition
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)