IniziaInizia gratis

Distribuzione della degree centrality dei nodi utente

In questo esercizio e nel prossimo, farai un ripasso finale del materiale del corso precedente. Il tuo compito è tracciare le distribuzioni di degree centrality per ciascuna partizione di nodi nella versione bipartita della rete di collaborazione di GitHub. Qui, lo farai per la partizione 'users'. Nel prossimo esercizio, lo farai per la partizione 'projects'.

La funzione che hai scritto prima, get_nodes_from_partition(), è già stata caricata per te. Giusto per ricordare: la "degree centrality" è una misura dell'importanza di un nodo, e la "distribuzione della degree centrality" è l'elenco dei punteggi di degree centrality per tutti i nodi del grafo. Qualche esercizio fa, quando hai creato il circos plot, abbiamo calcolato noi le degree centralities. Ora farai pratica a calcolarle da solo!

Questo esercizio fa parte del corso

Analisi di reti intermedia in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Importa matplotlib.pyplot come plt.
  • Usa la tua funzione get_nodes_from_partition() dall'esercizio precedente per ottenere una lista chiamata user_nodes corrispondente ai nodi 'users' di G.
  • Usando la funzione nx.degree_centrality(), calcola le degree centralities per ogni nodo in G. Salva il risultato come dcs.
  • Usa una list comprehension per calcolare le degree centralities per ogni nodo in user_nodes. Salva il risultato come user_dcs.
    • Ricorda: dcs è un dizionario, in cui le chiavi sono i nodi. I nodi rilevanti qui sono contenuti in user_nodes. Come puoi usare questa informazione per ottenere le degree centralities dei nodi utente? Usa n come variabile iteratore.
  • Traccia un istogramma della distribuzione dei gradi degli utenti usando plt.hist() e user_dcs.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Import matplotlib
____

# Get the 'users' nodes: user_nodes
user_nodes = ____

# Compute the degree centralities: dcs
dcs = ____

# Get the degree centralities for user_nodes: user_dcs
user_dcs = [dcs[____] for n in ____]

# Plot the degree distribution of users_dcs
plt.yscale('log')
plt.hist(____, bins=20)
plt.show()
Modifica ed esegui il codice