Distribution de la centralité en degré des nœuds utilisateurs
Dans cet exercice et le suivant, vous allez faire un dernier rappel du contenu du cours précédent. Votre tâche consiste à tracer la distribution de la 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 le prochain exercice, vous le ferez pour la partition 'projects'.
La fonction que vous avez écrite plus tôt, get_nodes_from_partition(), a été chargée pour vous. Pour rappel, la « centralité en degré » mesure l'importance d'un nœud, et la « distribution de la 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 créé le graphique circos, nous avons calculé les centralités en degré pour vous. Vous allez maintenant vous exercer à le faire vous-même!
Cette activité fait partie du cours
Analyse de réseaux intermédiaire en Python
Instructions de l’exercice
- 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é de chaque nœud dansG. Stockez le résultat dansdcs. - Utilisez une compréhension de liste pour calculer la centralité en degré de chaque nœud dans
user_nodes. Stockez le résultat dansuser_dcs.- Rappel :
dcsest un dictionnaire dont les clés sont les nœuds. Les nœuds pertinents ici se trouvent dansuser_nodes. Comment pouvez-vous utiliser cette information pour obtenir la centralité en degré des nœuds utilisateurs? Utilisezncomme variable d'itération.
- Rappel :
- Tracez un histogramme de la distribution des degrés des utilisateurs avec
plt.hist()etuser_dcs.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()