Distribution de la centralité en degré des nœuds utilisateur
Dans cet exercice et le suivant, vous allez faire un dernier rappel des notions du cours précédent. Votre tâche est de tracer les distributions de centralité en degré pour chaque partition de nœuds dans la version bipartite du réseau de collaboration GitHub. Ici, vous le ferez pour la partition 'users'. Dans l’exercice suivant, vous le ferez pour la partition 'projects'.
La fonction que vous avez écrite précédemment, get_nodes_from_partition(), a été chargée pour vous. Pour rappel, la « centralité en degré » est une mesure de l’importance d’un nœud, et la « distribution de centralité en degré » est la liste des scores de centralité en degré pour tous les nœuds du graphe. Il y a quelques exercices, lorsque vous avez réalisé le diagramme circo, nous avons calculé les centralités en degré pour vous. Vous allez maintenant vous entraîner à le faire vous-même !
Cet exercice fait partie du cours
Analyse de réseaux intermédiaire en Python
Instructions
- Importez
matplotlib.pyplotsous le nomplt. - Utilisez votre fonction
get_nodes_from_partition()de l’exercice précédent pour obtenir une liste appeléeuser_nodescorrespondant aux nœuds'users'deG. - À l’aide de la fonction
nx.degree_centrality(), calculez la centralité en degré pour chaque nœud deG. Stockez le résultat dansdcs. - Utilisez une compréhension de liste pour calculer la centralité en degré pour chaque nœud de
user_nodes. Stockez le résultat dansuser_dcs.- Rappelez‑vous,
dcsest un dictionnaire dont les clés sont les nœuds. Les nœuds qui nous intéressent ici sont contenus dansuser_nodes. Comment utiliser cette information pour obtenir la centralité en degré des nœuds utilisateur ? Utilisezncomme variable d’itération.
- Rappelez‑vous,
- Tracez un histogramme de la distribution des degrés des utilisateurs en utilisant
plt.hist()etuser_dcs.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import matplotlib
____
# Get the 'users' nodes: user_nodes
user_nodes = ____
# Compute the degree centralities: dcs
dcs = ____
# Get the degree centralities for user_nodes: user_dcs
user_dcs = [dcs[____] for n in ____]
# Plot the degree distribution of users_dcs
plt.yscale('log')
plt.hist(____, bins=20)
plt.show()