LoslegenKostenlos loslegen

Extrahiere die durchschnittliche Degree Centrality tagesscharf auf der Studierenden-Partition

Hier prüfst du, ob die durchschnittliche Degree Centrality über alle Knoten mit der Anzahl der über die Zeit gezeichneten Kanten korreliert. Es muss nicht unbedingt eine starke Korrelation geben, und du schaust dir an, ob das hier der Fall ist.

Diese Übung ist Teil des Kurses

Fortgeschrittene Netzwerkanalyse in Python

Kurs anzeigen

Anleitung zur Übung

  • Instanziiere einen neuen Graphen namens G_sub, der eine Teilmenge der Kanten enthält.
  • Füge Knoten aus G hinzu, einschließlich der Knotenmetadaten.
  • Füge Kanten hinzu, die die Kriterien erfüllen, mit der Methode .add_edges_from().
  • Erzeuge die Studierenden-Projektion G_student_sub aus G_sub mit der Funktion nx.bipartite.projected_graph().
  • Berechne die Degree Centrality der Studierenden-Projektion mit nx.degree_centrality() (verwende nicht die bipartite Version).
  • Hänge die durchschnittliche Degree Centrality an die Liste mean_dcs an. Achte darauf, dc.values() zuerst in eine Liste zu konvertieren.
  • Klicke auf 'Antwort senden', um die Grafik zu sehen!

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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()
Code bearbeiten und ausführen