始める無料で始める

ユーザーノードの次数中心性の分布

この演習と次の演習では、前のコースで学んだ内容を最後にもう一度復習します。課題は、GitHub コラボレーションネットワークの二部グラフ版における各ノード分割の次数中心性の分布をプロットすることです。ここでは、'users' パーティションについて実行します。次の演習では、'projects' パーティションについて行います。

以前に作成した関数 get_nodes_from_partition() は読み込まれています。念のためお伝えすると、「次数中心性」はノードの重要度を測る指標で、「次数中心性の分布」はグラフ内の全ノードの次数中心性スコアの一覧です。少し前の演習でサーコスプロットを作成したときには、こちらで次数中心性を計算しました。今回は、みなさん自身で計算してみましょう!

この演習はコースの一部です

Python 中級ネットワーク解析

コースを見る

演習の手順

  • matplotlib.pyplotplt としてインポートします。
  • 前の演習で作成した get_nodes_from_partition() を使い、G'users' ノードに対応するリスト user_nodes を取得します。
  • nx.degree_centrality() 関数を使って、G 内の各ノードの次数中心性を計算し、結果を dcs として保存します。
  • リスト内包表記を使って、user_nodes の各ノードの次数中心性を計算し、結果を user_dcs として保存します。
    • dcs はキーがノードの辞書です。ここで対象となるノードは user_nodes に含まれています。この情報を使ってユーザーノードの次数中心性をどのように取得できますか? 反復変数には n を使いましょう。
  • plt.hist()user_dcs を使って、ユーザーの次数分布のヒストグラムを描画します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# 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()
コードを編集して実行