CommencerCommencer gratuitement

Caractériser les communautés d’édition

Vous allez maintenant combiner ce que vous avez appris sur l’algorithme BFS et le concept de cliques maximales pour visualiser le réseau avec un Arc plot.

La plus grande clique maximale du réseau de collaboration des utilisateurs GitHub a été affectée au sous-graphe G_lmc. Notez que pour NetworkX version 2.x et ultérieures, G.subgraph(nodelist) ne renvoie qu’une vue immuable du graphe original. Il faut explicitement demander une .copy() du graphe pour obtenir une version modifiable.

Cet exercice fait partie du cours

Introduction à l’analyse de réseaux en Python

Afficher le cours

Instructions

  • Éloignez-vous d’un degré de séparation à partir de la clique et ajoutez ces utilisateurs au sous-graphe. Dans la première boucle for :
    • Ajoutez des nœuds à G_lmc à partir des voisins de G en utilisant les méthodes .add_nodes_from() et .neighbors().
    • En utilisant la méthode .add_edges_from(), ajoutez des arêtes à G_lmc entre le nœud courant et tous ses voisins. Pour ce faire, créez une liste de tuples avec la fonction zip() composée du nœud courant et de chacun de ses voisins. Le premier argument de zip() doit être [node]*len(list(G.neighbors(node))), et le second argument doit être les voisins de node.
  • Enregistrez le score de centralité de degré de chaque nœud dans ses métadonnées.
    • Faites-le en affectant nx.degree_centrality(G_lmc)[n] à G_lmc.nodes[n]['degree centrality'] dans la deuxième boucle for.
  • Visualisez ce réseau avec un Arc plot en triant les nœuds par centralité de degré (vous pouvez le faire avec l’argument nommé sort_by='degree centrality').

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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()
Modifier et exécuter le code