1. 学ぶ
  2. /
  3. コース
  4. /
  5. Python 中級ネットワーク解析

Connected

演習

日ごとの最も人気のあるフォーラムを見つける:II

前の演習お疲れさまでした。時系列のグラフリストを作成するコードを書きましたね。ここではその続きとして、日ごとに「最も人気のあるフォーラム」のスコアを獲得したフォーラムがいくつあったかを求めていきます!

ここで行うことの1つは、辞書をフィルタリングするための「辞書内包表記」です。これはリストをフィルタリングするリスト内包表記にとてもよく似ていますが、構文は {key: val for key, val in dict.items() if ...} のようになります。覚えておいてください!

指示

100 XP
  • nx.bipartite.degree_centrality() を使い、引数に G_sub と forum_nodes を渡して次数中心性を計算します。
  • 辞書をフィルタリングして、フォーラムの次数中心性だけが残るようにします。出力の key: val は n, dc、反復は dc.items() に対して行い、n が forum_nodes に含まれているかを確認します。
  • 最も人気のあるフォーラムを特定します。これは次数中心性が最大(max(forum_dcs.values()))で、かつ DC の値が 0 でないものです。
  • 最大の dc 値を highest_dcs に追加します。
  • プロットを作成します!
    • 1つ目のプロットでは、most_popular_forums(リストのリスト)を forums を反復変数として走査するリスト内包表記を使います。出力式は len() で計算した「最も人気のあるフォーラムの数」です。
    • 2つ目のプロットでは、highest_dcs と plt.plot() を使って、トップの次数中心性スコアを可視化します。