LoslegenKostenlos loslegen

Ähnlichkeitsmetrik für Nutzer

Nachdem du eine Funktion geschrieben hast, die die zwischen zwei Knoten geteilte Knotenmengen berechnet, schreibst du jetzt eine Funktion, die eine Ähnlichkeitsmetrik zwischen zwei Nutzern bestimmt: die Anzahl der von zwei Nutzern geteilten Projekte geteilt durch die Gesamtzahl der Knoten in der anderen Partition. Damit kannst du anschließend Nutzer finden, die einander ähnlich sind.

Diese Übung ist Teil des Kurses

Fortgeschrittene Netzwerkanalyse in Python

Kurs anzeigen

Anleitung zur Übung

  • Vervollständige die Funktion user_similarity(), um die Ähnlichkeit zwischen user1 und user2 zu berechnen.
    • Verwende assert-Anweisungen, um zu prüfen, dass user1 und user2 zur Partition 'users' gehören.
    • Verwende deine Funktion shared_partition_nodes() aus der vorherigen Übung, um die Menge der zwischen den beiden Nutzern user1 und user2 geteilten Knoten zu erhalten.
    • Gib den Anteil der Knoten in der Partition projects zurück. Teile dazu die Anzahl der shared_nodes durch die Gesamtzahl der Knoten in der Partition 'projects'.
  • Berechne den Ähnlichkeitsscore zwischen den Nutzern 'u4560' und 'u1880'. Gehe dazu so vor:
    • Ermittle zuerst die Knoten in der Partition 'projects' mit deiner Funktion get_nodes_from_partition().
    • Verwende dann deine Funktion user_similarity(), um den Score zu berechnen.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen