LoslegenKostenlos loslegen

Bearbeitungsgemeinschaften charakterisieren

Jetzt kombinierst du, was du über den BFS-Algorithmus und das Konzept maximaler Cliquen gelernt hast, um das Netzwerk mit einem Arc-Plot zu visualisieren.

Die größte maximale Clique im Github-Kollaborationsnetzwerk der Nutzer wurde dem Subgraphen G_lmc zugewiesen. Beachte, dass für NetworkX Version 2.x und höher G.subgraph(nodelist) nur eine unveränderliche Sicht auf den ursprünglichen Graphen zurückgibt. Wir müssen explizit eine .copy() des Graphen anfordern, um eine veränderliche Version zu erhalten.

Diese Übung ist Teil des Kurses

Einstieg in die Netzwerkanalyse mit Python

Kurs anzeigen

Anleitung zur Übung

  • Gehe eine Verbindungsstufe von der Clique aus und füge diese Nutzer dem Subgraphen hinzu. In der ersten for-Schleife:
    • Füge Knoten zu G_lmc aus den Nachbarn von G mithilfe der Methoden .add_nodes_from() und .neighbors() hinzu.
    • Füge mit der Methode .add_edges_from() Kanten zu G_lmc zwischen dem aktuellen Knoten und all seinen Nachbarn hinzu. Erzeuge dazu eine Liste von Tupeln mit der Funktion zip(), bestehend aus dem aktuellen Knoten und jedem seiner Nachbarn. Das erste Argument für zip() sollte [node]*len(list(G.neighbors(node))) sein, und das zweite Argument die Nachbarn von node.
  • Protokolliere die Degree-Centrality jedes Knotens in seinen Knotenmetadaten.
    • Weise dazu in der zweiten for-Schleife nx.degree_centrality(G_lmc)[n] dem Eintrag G_lmc.nodes[n]['degree centrality'] zu.
  • Visualisiere dieses Netzwerk mit einem Arc-Plot und sortiere die Knoten nach der Degree Centrality (du kannst das mit dem Schlüsselwortargument sort_by='degree centrality' tun).

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Import necessary modules
from nxviz import arc
import matplotlib.pyplot as plt

# Identify the largest maximal clique: largest_max_clique
largest_max_clique = set(sorted(nx.find_cliques(G), key=lambda x: len(x))[-1])

# Create a subgraph from the largest_max_clique: G_lmc
G_lmc = G.subgraph(largest_max_clique).copy()

# Go out 1 degree of separation
for node in list(G_lmc.nodes()):
    G_lmc.add_nodes_from(____)
    G_lmc.add_edges_from(zip(____, ____))

# Record each node's degree centrality score
for n in G_lmc.nodes():
    ____ = ____

# Create the Arc plot: a
a = ____

# Draw the Arc plot to the screen
a
plt.show()
Code bearbeiten und ausführen