Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Komplettera funktionen user_similarity() för att beräkna likheten mellan user1 och user2.
    • Använd assert-satser för att kontrollera att user1 och user2 tillhö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ändarna user1 och user2.
    • Returnera bråket av noder i projects-partitionen, det vill säga dividera antalet shared_nodes med det totala antalet noder i partitionen 'projects'.
  • Beräkna likhetspoängen mellan användarna 'u4560' och 'u1880'. Gör så här:
    • Hämta först noderna i partitionen 'projects' med din get_nodes_from_partition()-funktion.
    • Använd sedan din user_similarity()-funktion för att beräkna poängen.

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)
Redigera och kör kod