Deep Dive – Twitter-Netzwerk
Jetzt tauchst du tief in ein Twitter-Netzwerk ein – das festigt, was du zuvor gelernt hast. Zuerst suchst du die Knoten, die Nachrichten sehr effizient an viele Personen in nur einem Verbindungsgrad weiterleiten können.
NetworkX wurde bereits als nx für dich importiert.
Diese Übung ist Teil des Kurses
Einstieg in die Netzwerkanalyse mit Python
Anleitung zur Übung
- Schreibe eine Funktion
find_nodes_with_highest_deg_cent(G), die die Knoten mit der höchsten Grad-Zentralität zurückgibt. Gehe dabei wie folgt vor:- Berechne die Grad-Zentralität von
G. - Ermittle die maximale Grad-Zentralität mit der Funktion
max()auflist(deg_cent.values()). - Iteriere über das Dictionary der Grad-Zentralität,
deg_cent.items(). - Wenn der Grad-Zentralitätswert
vdes aktuellen Knotenskgleichmax_dcist, füge ihn der Knotenmengen hinzu.
- Berechne die Grad-Zentralität von
- Nutze deine Funktion, um die Knoten mit der höchsten Grad-Zentralität in
Tzu finden. - Schreibe eine Assertion, die prüft, ob die Knoten korrekt identifiziert wurden. Das ist bereits für dich erledigt – klicke einfach auf 'Antwort senden', um das Ergebnis zu sehen!
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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())