Aan de slagBegin gratis

Verdeling van graad-centraliteit van gebruikersknooppunten

In deze en de volgende oefening maak je een laatste herhaling van stof uit de vorige cursus. Je taak is om de verdelingen van graad-centraliteit te plotten voor elke knooppartitie in de bipartiete versie van het GitHub-samenwerkingsnetwerk. Hier doe je dit voor de 'users'-partitie. In de volgende oefening doe je dit voor de 'projects'-partitie.

De functie die je eerder schreef, get_nodes_from_partition(), is voor je geladen. Even ter herinnering: de "graad-centraliteit" is een maat voor de belangrijkheid van een knoop, en de "verdeling van graad-centraliteit" is de lijst met graad-centraliteitsscores voor alle knopen in de graaf. Een paar oefeningen geleden, toen je de circos-plot maakte, hebben we de graad-centraliteiten voor je berekend. Nu ga je oefenen om dit zelf te doen!

Deze oefening maakt deel uit van de cursus

Gemiddelde netwerkanalyse in Python

Bekijk cursus

Oefeninstructies

  • Importeer matplotlib.pyplot als plt.
  • Gebruik je functie get_nodes_from_partition() uit de vorige oefening om een lijst user_nodes op te halen die overeenkomt met de 'users'-knooppunten van G.
  • Gebruik de functie nx.degree_centrality() om de graad-centraliteiten voor elke knoop in G te berekenen. Sla het resultaat op als dcs.
  • Gebruik een list comprehension om de graad-centraliteiten te berekenen voor elke knoop in user_nodes. Sla het resultaat op als user_dcs.
    • Onthoud: dcs is een dictionary waarin de sleutels de knopen zijn. De relevante knopen staan hier in user_nodes. Hoe kun je deze info gebruiken om de graad-centraliteiten van de gebruikersknooppunten te verkrijgen? Gebruik n als je iteratorvariabele.
  • Plot een histogram van de graadverdeling van gebruikers met plt.hist() en user_dcs.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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