Zacznij terazZacznij za darmo

Metryka podobieństwa użytkowników

Masz już funkcję obliczającą zbiór węzłów wspólnych dla dwóch węzłów. Teraz napiszesz funkcję wyznaczającą metrykę podobieństwa między dwoma użytkownikami: liczbę projektów wspólnych dla obu użytkowników podzieloną przez łączną liczbę węzłów w drugiej partycji. Taka miara pozwala znajdować użytkowników podobnych do siebie nawzajem.

To ćwiczenie jest częścią kursu

Analiza sieci w Pythonie – poziom średniozaawansowany

Zobacz kurs

Instrukcje do ćwiczenia

  • Uzupełnij funkcję user_similarity(), która oblicza podobieństwo między user1 a user2.
    • Użyj instrukcji assert, aby sprawdzić, czy user1 i user2 należą do partycji 'users'.
    • Skorzystaj z funkcji shared_partition_nodes() napisanej w poprzednim ćwiczeniu, aby uzyskać zbiór węzłów wspólnych dla user1 i user2.
    • Zwróć ułamek węzłów z partycji projects – czyli podziel liczbę shared_nodes przez łączną liczbę węzłów w partycji 'projects'.
  • Oblicz wynik podobieństwa między użytkownikami 'u4560' i 'u1880'. W tym celu:
    • Najpierw pobierz węzły z partycji 'projects' za pomocą funkcji get_nodes_from_partition().
    • Następnie użyj funkcji user_similarity(), aby obliczyć wynik.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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)
Edytuj i uruchom kod