Deep dive - Twitter-netwerk
Je gaat nu een deep dive doen in een Twitter-netwerk, zodat je oefent met wat je eerder hebt geleerd. Eerst ga je de nodes vinden die berichten heel efficiënt kunnen uitzenden naar veel mensen op één graad afstand.
NetworkX is al voor je geïmporteerd als nx.
Deze oefening maakt deel uit van de cursus
Introductie tot netwerkanalyse in Python
Oefeninstructies
- Schrijf een functie
find_nodes_with_highest_deg_cent(G)die de node(s) met de hoogste graadcentraliteit teruggeeft met de volgende stappen:- Bereken de graadcentraliteit van
G. - Bereken de maximale graadcentraliteit met de functie
max()oplist(deg_cent.values()). - Itereer over het graadcentraliteitswoordenboek,
deg_cent.items(). - Als de graadcentraliteitswaarde
vvan de huidige nodekgelijk is aanmax_dc, voeg die dan toe aan de set met nodes.
- Bereken de graadcentraliteit van
- Gebruik je functie om de node(s) te vinden met de hoogste graadcentraliteit in
T. - Schrijf een assertie die controleert of de node(s) correct zijn geïdentificeerd. Dit is al voor je gedaan, dus klik op 'Antwoord verzenden' om het resultaat te zien!
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Define find_nodes_with_highest_deg_cent()
def find_nodes_with_highest_deg_cent(G):
# Compute the degree centrality of G: deg_cent
deg_cent = ____
# Compute the maximum degree centrality: max_dc
max_dc = ____
nodes = set()
# Iterate over the degree centrality dictionary
for k, v in ____:
# Check if the current value has the maximum degree centrality
if ____ == ____:
# Add the current node to the set of nodes
____
return nodes
# Find the node(s) that has the highest degree centrality in T: top_dc
top_dc = ____
print(top_dc)
# Write the assertion statement
for node in top_dc:
assert nx.degree_centrality(T)[node] == max(nx.degree_centrality(T).values())