Aan de slagBegin gratis

Overeenkomstmaat voor gebruikers

Nu je een functie hebt geschreven om de set knooppunten te berekenen die twee knooppunten delen, ga je een functie schrijven om een overeenkomstmaat tussen twee gebruikers te bepalen: het aantal projecten dat twee gebruikers delen, gedeeld door het totale aantal knooppunten in de andere partitie. Dit kun je vervolgens gebruiken om gebruikers te vinden die op elkaar lijken.

Deze oefening maakt deel uit van de cursus

Gemiddelde netwerkanalyse in Python

Bekijk cursus

Oefeninstructies

  • Maak de functie user_similarity() af om de overeenkomst tussen user1 en user2 te berekenen.
    • Gebruik assert-statements om te controleren dat user1 en user2 tot de 'users'-partitie behoren.
    • Gebruik je functie shared_partition_nodes() uit de vorige oefening om de set knooppunten te krijgen die de twee gebruikers user1 en user2 delen.
    • Retourneer de fractie van knooppunten in de projects-partitie. Deel dus het aantal shared_nodes door het totale aantal knooppunten in de 'projects'-partitie.
  • Bereken de overeenkomstscore tussen de gebruikers 'u4560' en 'u1880'. Doe dit als volgt:
    • Haal eerst de knooppunten in de 'projects'-partitie op met je functie get_nodes_from_partition().
    • Gebruik daarna je functie user_similarity() om de score te berekenen.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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)
Code bewerken en uitvoeren