Öğrenciler bölümünde ortalama derece merkeziliğini gün gün çıkar
Burada, tüm düğümler üzerindeki ortalama derece merkeziliğinin, zaman içinde çizilen kenar sayısıyla ilişkili olup olmadığını inceleyeceksin. Mutlaka güçlü bir korelasyon olmak zorunda değil; bunun böyle olup olmadığına bakacaksın.
Bu egzersiz
Python ile Orta Düzey Ağ (Network) Analizi
kursunun bir parçasıdırEgzersiz talimatları
- Kenarların bir alt kümesini içeren
G_subadında yeni bir grafik oluştur. - Düğüm metadatası dahil olacak şekilde
G'den düğümler ekle. - Kriteri sağlayan kenarları
.add_edges_from()metodunu kullanarak ekle. nx.bipartite.projected_graph()fonksiyonunu kullanarakG_sub'dan öğrenciler izdüşümünüG_student_subolarak elde et.nx.degree_centrality()kullanarak öğrenciler izdüşümünün derece merkeziliğini hesapla (iki parçalı sürümü kullanma).- Ortalama derece merkeziliğini
mean_dcslistesine ekle. Öncedc.values()'ı listeye dönüştürdüğünden emin ol. - Grafiği görmek için 'Yanıtı Gönder'e bas!
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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()