Kullanıcı düğümlerinin derece merkezilik dağılımı
Bu egzersizde ve bir sonraki egzersizde, önceki kurstaki materyalin son bir tekrarını yapacaksın. Görevin, GitHub işbirliği ağının iki parçalı (bipartite) sürümünde, her düğüm bölümünün derece merkezilik dağılımlarını çizmek. Burada bunu 'users' bölümü için yapacaksın. Sonraki egzersizde ise 'projects' bölümü için yapacaksın.
Daha önce yazdığın get_nodes_from_partition() fonksiyonu senin için yüklendi. Hatırlatmak için, "derece merkeziliği" bir düğümün öneminin bir ölçüsüdür ve "derece merkezilik dağılımı" ise grafikteki tüm düğümlerin derece merkezilik puanlarının listesidir. Birkaç egzersiz önce, circos grafiğini oluştururken, derece merkeziliklerini senin için hesaplamıştık. Şimdi bunu kendin yapmayı pratik edeceksin!
Bu egzersiz
Python ile Orta Düzey Ağ (Network) Analizi
kursunun bir parçasıdırEgzersiz talimatları
matplotlib.pyplotmodülünüpltadıyla içe aktar.- Önceki egzersizdeki
get_nodes_from_partition()fonksiyonunu kullanarak,G’nin'users'düğümlerine karşılık gelenuser_nodesadlı bir liste elde et. nx.degree_centrality()fonksiyonunu kullanarakG’deki her düğüm için derece merkeziliklerini hesapla. Sonucudcsolarak sakla.- Bir liste üreteci kullanarak
user_nodesiçindeki her düğümün derece merkeziliklerini hesapla. Sonucuuser_dcsolarak sakla.- Unutma,
dcsanahtarları düğümler olan bir sözlüktür. İlgili düğümler buradauser_nodesiçinde. Kullanıcı düğümlerinin derece merkeziliklerini elde etmek için bu bilgiyi nasıl kullanabilirsin? Yineleyici değişken olaraknkullan.
- Unutma,
plt.hist()veuser_dcskullanarak kullanıcıların derece dağılımının histogramını çiz.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Import matplotlib
____
# Get the 'users' nodes: user_nodes
user_nodes = ____
# Compute the degree centralities: dcs
dcs = ____
# Get the degree centralities for user_nodes: user_dcs
user_dcs = [dcs[____] for n in ____]
# Plot the degree distribution of users_dcs
plt.yscale('log')
plt.hist(____, bins=20)
plt.show()