Metrika podobnosti uživatelů
Napsal/a jsi funkci pro výpočet množiny uzlů sdílených mezi dvěma uzly. Teď napíšeš funkci, která vypočítá metriku podobnosti mezi dvěma uživateli: počet projektů sdílených oběma uživateli dělený celkovým počtem uzlů v druhé části grafu. Tuto metriku pak můžeš využít k nalezení uživatelů, kteří si jsou navzájem podobní.
Toto cvičení je součástí kurzu
Intermediate Network Analysis in Python
Pokyny k cvičení
- Dokonči funkci
user_similarity()pro výpočet podobnosti meziuser1auser2.- Pomocí příkazů
assertověř, žeuser1iuser2patří do části'users'. - Použij svou funkci
shared_partition_nodes()z předchozího cvičení k získání množiny uzlů sdílených mezi uživateliuser1auser2. - Vrať podíl uzlů v části
projects— tedy vyděl početshared_nodescelkovým počtem uzlů v části'projects'.
- Pomocí příkazů
- Vypočítej skóre podobnosti mezi uživateli
'u4560'a'u1880'. Postupuj takto:- Nejprve získej uzly v části
'projects'pomocí své funkceget_nodes_from_partition(). - Pak použij svou funkci
user_similarity()pro výpočet skóre.
- Nejprve získej uzly v části
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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)