CommencerCommencer gratuitement

Extraire la centralité en degré moyenne, jour après jour, sur la partition des étudiants

Ici, vous allez vérifier si la centralité en degré moyenne sur l’ensemble des nœuds est corrélée au nombre d’arêtes tracées au fil du temps. Il n’y a pas forcément de forte corrélation ; vous allez examiner si c’est le cas.

Cet exercice fait partie du cours

Analyse de réseaux intermédiaire en Python

Afficher le cours

Instructions

  • Instanciez un nouveau graphe appelé G_sub contenant un sous-ensemble d’arêtes.
  • Ajoutez les nœuds depuis G, y compris les métadonnées des nœuds.
  • Ajoutez les arêtes qui respectent les critères, en utilisant la méthode .add_edges_from().
  • Obtenez la projection des étudiants G_student_sub à partir de G_sub en utilisant la fonction nx.bipartite.projected_graph().
  • Calculez la centralité en degré de la projection des étudiants avec nx.degree_centrality() (n’utilisez pas la version bipartite).
  • Ajoutez la centralité en degré moyenne à la liste mean_dcs. Veillez d’abord à convertir dc.values() en liste.
  • Cliquez sur "Soumettre la réponse" pour afficher le graphique !

Exercice interactif pratique

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

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