IniziaInizia gratis

Metrica di similarità tra utenti

Dopo aver scritto una funzione per calcolare l’insieme dei nodi condivisi tra due nodi, ora scriverai una funzione per calcolare una metrica di similarità tra due utenti: il numero di progetti condivisi tra due utenti diviso per il numero totale di nodi nell’altra partizione. Questo può poi essere usato per trovare utenti simili tra loro.

Questo esercizio fa parte del corso

Analisi di reti intermedia in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Completa la funzione user_similarity() per calcolare la similarità tra user1 e user2.
    • Usa istruzioni assert per verificare che user1 e user2 appartengano alla partizione 'users'.
    • Usa la tua funzione shared_partition_nodes() dell’esercizio precedente per ottenere l’insieme dei nodi condivisi tra i due utenti user1 e user2.
    • Restituisci la frazione rispetto ai nodi nella partizione projects. Cioè, dividi il numero di shared_nodes per il numero totale di nodi nella partizione 'projects'.
  • Calcola lo score di similarità tra gli utenti 'u4560' e 'u1880'. Per farlo:
    • Per prima cosa ottieni i nodi nella partizione 'projects' usando la tua funzione get_nodes_from_partition().
    • Poi usa la tua funzione user_similarity() per calcolare lo score.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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)
Modifica ed esegui il codice