Métrica de similaridade entre usuários
Depois de escrever uma função para calcular o conjunto de nós compartilhados entre dois nós, agora você vai escrever uma função para computar uma métrica de similaridade entre dois usuários: o número de projetos compartilhados entre dois usuários dividido pelo total de nós na outra partição. Isso pode ser usado para encontrar usuários semelhantes entre si.
Este exercício faz parte do curso
Análise de Redes Intermediária em Python
Instruções do exercício
- Complete a função
user_similarity()para calcular a similaridade entreuser1euser2.- Use declarações
assertpara verificar queuser1euser2pertencem à partição'users'. - Use sua função
shared_partition_nodes()do exercício anterior para obter o conjunto de nós compartilhados entre os dois usuáriosuser1euser2. - Retorne a fração de nós na partição
projects. Ou seja, divida o número deshared_nodespelo total de nós na partição'projects'.
- Use declarações
- Calcule a pontuação de similaridade entre os usuários
'u4560'e'u1880'. Para fazer isso:- Primeiro, obtenha os nós na partição
'projects'usando sua funçãoget_nodes_from_partition(). - Em seguida, use sua função
user_similarity()para calcular a pontuação.
- Primeiro, obtenha os nós na partição
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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)