Metrică de similaritate între utilizatori
Acum că ai scris o funcție pentru a calcula mulțimea nodurilor comune dintre doi utilizatori, vei scrie o funcție care să calculeze o metrică de similaritate între aceștia: numărul de proiecte comune împărțit la numărul total de noduri din cealaltă partiție. Aceasta poate fi folosită ulterior pentru a identifica utilizatori similari.
Acest exercițiu face parte din cursul
Analiză intermediară a rețelelor în Python
Instrucțiuni pentru exercițiu
- Completează funcția
user_similarity()pentru a calcula similaritatea dintreuser1șiuser2.- Folosește instrucțiuni
assertpentru a verifica căuser1șiuser2aparțin partiției'users'. - Folosește funcția
shared_partition_nodes()din exercițiul anterior pentru a obține mulțimea nodurilor comune dintre cei doi utilizatori,user1șiuser2. - Returnează fracția de noduri din partiția
projects, adică împarte numărul deshared_nodesla numărul total de noduri din partiția'projects'.
- Folosește instrucțiuni
- Calculează scorul de similaritate dintre utilizatorii
'u4560'și'u1880'. Pentru aceasta:- Obține mai întâi nodurile din partiția
'projects'folosind funcțiaget_nodes_from_partition(). - Apoi, folosește funcția
user_similarity()pentru a calcula scorul.
- Obține mai întâi nodurile din partiția
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)