Likhetsmått för användare
Nu när du har skrivit en funktion för att beräkna mängden noder som delas mellan två noder, ska du skriva en funktion som beräknar ett likhetsmått mellan två användare: antalet delade projekt mellan två användare dividerat med det totala antalet noder i den andra partitionen. Detta kan sedan användas för att hitta användare som liknar varandra.
Den här övningen är en del av kursen
Nätverksanalys i Python – fortsättningskurs
Övningsinstruktioner
- Komplettera funktionen
user_similarity()för att beräkna likheten mellanuser1ochuser2.- Använd
assert-satser för att kontrollera attuser1ochuser2tillhör partitionen'users'. - Använd din
shared_partition_nodes()-funktion från föregående övning för att hämta mängden noder som delas mellan de två användarnauser1ochuser2. - Returnera bråket av noder i
projects-partitionen, det vill säga dividera antaletshared_nodesmed det totala antalet noder i partitionen'projects'.
- Använd
- Beräkna likhetspoängen mellan användarna
'u4560'och'u1880'. Gör så här:- Hämta först noderna i partitionen
'projects'med dinget_nodes_from_partition()-funktion. - Använd sedan din
user_similarity()-funktion för att beräkna poängen.
- Hämta först noderna i partitionen
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)