ÎncepețiÎncepe gratuit

Caracterizarea comunităților de editare

Vei combina acum ce ai învățat despre algoritmul BFS și conceptul de clici maximale pentru a vizualiza rețeaua cu un Arc plot.

Cea mai mare clică maximală din rețeaua de colaborare a utilizatorilor GitHub a fost atribuită subgrafului G_lmc. Reține că, începând cu versiunea 2.x a NetworkX, G.subgraph(nodelist) returnează doar o vizualizare imuabilă a grafului original. Trebuie să soliciți explicit o copie prin .copy() pentru a obține o versiune modificabilă.

Acest exercițiu face parte din cursul

Introducere în analiza rețelelor în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Extinde cu 1 grad de separare față de clică și adaugă acei utilizatori în subgraf. În interiorul primului for:
    • Adaugă noduri în G_lmc din vecinii lui G, folosind metodele .add_nodes_from() și .neighbors().
    • Folosind metoda .add_edges_from(), adaugă muchii în G_lmc între nodul curent și toți vecinii săi. Pentru aceasta, va trebui să creezi o listă de tupluri cu funcția zip(), formată din nodul curent și fiecare vecin al său. Primul argument al zip() trebuie să fie [node]*len(list(G.neighbors(node))), iar al doilea — vecinii lui node.
  • Înregistrează scorul de centralitate a gradului al fiecărui nod în metadatele sale.
    • Fă acest lucru atribuind nx.degree_centrality(G_lmc)[n] lui G_lmc.nodes[n]['degree centrality'] în al doilea for.
  • Vizualizează această rețea cu un Arc plot, sortând nodurile după centralitatea gradului (poți folosi argumentul cheie sort_by='degree centrality').

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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()
Editează și rulează codul