CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Instanciez un nouveau graphe appelé G_sub contenant 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 de G_sub au moyen de la fonction nx.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'abord dc.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()
Modifier et exécuter le code