読者です 読者をやめる 読者になる 読者になる

データ分析エンジニアのブログ

日常のことからプログラミングや機械学習まで@六本木

ネットワークの中心性の話

データ分析 Python


久々のブログ更新です。
最近は、卒論と機械学習やアドテク周りの勉強をやっていて中々ブログを書く時間が取れていませんでした。


卒論ではTwitterにおける情報拡散の研究をしているので、
基本的なネットワークの特徴量である、中心性の話をしたいと思います。


まずネットワークの中心性がどのようなものなのかを簡単に説明すると、
ネットワーク上の点(ノードと言います)の中でどのノードが中心なのかを表す値です。


例えば、Twitterではインフルエンサーと言われるユーザーであったり、アジアのハブ空港となっているシンガポールであったり、などの中心的なノードを見極める上でとても重要な指標となります。


中心性にもいくつか種類があって、ここでは以下の3種類の中心性を取り扱います。

  • 次数中心性
  • 近接中心性
  • 媒介中心性

次数中心性

他のノードとつながっているリンク(エッジと言います)が多いほど、中心性が高いとする方法。
最も単純でわかりやすい中心性です。

ノードiの次数中心性 = ノードiにつながっているエッジの数

近接中心性

他の点と距離が近いほど中心性が高いとする方法。

ノードiの近接中心性 = (ノードの数 - 1) / (他ノードとノードiの距離の総和)

媒介中心性

その点を通る経路が多いほど、中心性が高いとする計算方法。
最も一般的でよく使われる中心性。

ノードiの媒介中心性 = ノードiを通る経路数の総和 / ノードiを除く点の組合せ数


以上3種類の中心性を簡単に紹介しました。


これ以外にもウェブサイトのランク付けに用いられているPageRankや、それのもとになっている固有ベクトル中心性などの中心性も存在します。
これらの方法は自分のつながっているノードの中心性も考慮して計算を行っています。


興味があれば以下のサイトを参考にしてみてください。