ユーザーノードの次数中心性の分布
この演習と次の演習では、前のコースで学んだ内容を最後にもう一度復習します。課題は、GitHub コラボレーションネットワークの二部グラフ版における各ノード分割の次数中心性の分布をプロットすることです。ここでは、'users' パーティションについて実行します。次の演習では、'projects' パーティションについて行います。
以前に作成した関数 get_nodes_from_partition() は読み込まれています。念のためお伝えすると、「次数中心性」はノードの重要度を測る指標で、「次数中心性の分布」はグラフ内の全ノードの次数中心性スコアの一覧です。少し前の演習でサーコスプロットを作成したときには、こちらで次数中心性を計算しました。今回は、みなさん自身で計算してみましょう!
この演習はコースの一部です
Python 中級ネットワーク解析
演習の手順
matplotlib.pyplotをpltとしてインポートします。- 前の演習で作成した
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()