Extraire la centralité de degré moyenne jour par jour sur la partition des étudiantes et étudiants
Ici, vous allez vérifier si la centralité de degré moyenne sur tous les nœuds est corrélée avec le nombre d'arêtes tracées dans le temps. Il n'y a pas nécessairement une forte corrélation, et vous allez voir si c'est le cas.
Cette activité fait partie du cours
Analyse de réseaux intermédiaire en Python
Instructions de l’exercice
- Instanciez un nouveau graphe appelé
G_subcontenant un sous-ensemble d'arêtes. - Ajoutez les nœuds de
G, y compris les métadonnées des nœuds. - Ajoutez les arêtes qui respectent le critère à l'aide de la méthode
.add_edges_from(). - Obtenez la projection des étudiantes et étudiants
G_student_subà partir deG_subau moyen de la fonctionnx.bipartite.projected_graph(). - Calculez la centralité de degré de la projection des étudiantes et étudiants avec
nx.degree_centrality()(n'utilisez pas la version bipartite). - Ajoutez la centralité de degré moyenne à la liste
mean_dcs. Assurez-vous de convertir d'aborddc.values()en liste. - Cliquez sur "Soumettre la réponse" pour afficher le graphique !
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
from datetime import datetime, timedelta
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Initialize a new list: mean_dcs
mean_dcs = []
curr_day = dayone
td = timedelta(days=2)
while curr_day < lastday:
if curr_day.day == 1:
print(curr_day)
# Instantiate a new graph containing a subset of edges: G_sub
G_sub = ____
# Add nodes from G
G_sub.____(____)
# Add in edges that fulfill the criteria
G_sub.____([(u, v, d) for u, v, d in G.edges(data=True) if d['date'] >= curr_day and d['date'] < curr_day + td])
# Get the students projection
G_student_sub = ____
# Compute the degree centrality of the students projection
dc = ____
# Append mean degree centrality to the list mean_dcs
mean_dcs.____(np.mean(____(dc.values())))
# Increment the time
curr_day += td
plt.plot(mean_dcs)
plt.xlabel('Time elapsed')
plt.ylabel('Degree centrality.')
plt.show()