内容紹介
さまざまな関係性の構造をPythonで分析する!
ネットワーク分析は、さまざまな「関係性」を分析する学問です。
構造をモデル化することで、ネットワークという言葉から想像しやすいWebやSNSの分析だけでなく、たとえば感染症の伝搬経路を見つけたり、未来の人間関係を予測したりすることが可能です。マーケティングなどの現場でも使用されています。
本書では、ネットワーク構造をもつデータをPythonで分析するための基礎知識を習得できます。
分析には、Google Colaboratory(クラウド上で使用できるJupyter Notebook環境。Colabとも呼ばれる)を用います。ブラウザ上で動くColabは環境構築が不要なため、すぐに実際にコードを試すことができます。また、可視化ツールとしてNetworkXを使用し、さまざまなネットワークをグラフとして視覚的に把握できます。
実際にColabで動かせるプログラムと、そのプログラムによって出力されたグラフを数多く例示しているため、実際にColabでコードを実行しながら理解を深めることができます。
データサイエンスを学ぶ学生はもちろん、企業の広報・企画・マーケティング担当者など、顧客の購買行動やソーシャルネットワークの分析などが必要になった社会人にも役立つ一冊です。
このような方におすすめ
◎ネットワーク分析に興味のある社会人、技術者
○理科系、とくに情報工学系の学部生、大学院生
○社会学系の学部生、大学院生
目次
主要目次
第1章 分析できる環境を用意する-ツールや言語の把握
第2章 ネットワーク分析の流れを知る-小説の人間関係を紐解く
第3章 必要な用語を学ぶ-ネットワークの基礎知識
第4章 中心を見つける-さまざまな中心性
第5章 経路を見つける-ネットワークの探索
第6章 グループを見つける-分割と抽出
第7章 似たネットワークを作る-モデル化
第8章 似た頂点を見つける-将来の構造予測
第9章 病気や口コミの広がりをモデル化する-感染、情報伝搬
第10章 ネットワークを俯瞰する-可視化による分析
第11章 リファレンス
詳細目次
第1章 分析できる環境を用意する-ツールや言語の把握
1.1 ネットワークとは
1.2 ネットワーク分析ツール
1.2.1 NetworkX
1.2.2 Gephi
1.2.3 graph-tool
1.2.4 igraph
1.3 ネットワーク可視化ツール
1.3.1 Matplotlib
1.3.2 Bokeh
1.4 プログラミング言語-Python
1.5 代表的なPythonの実行環境-Jupyter Notebook
1.6 本書で使用するPythonの実行環境-Colaboratory
練習問題
第2章 ネットワーク分析の流れを知る-小説の人間関係を紐解く
2.1 データの入力
2.1.1 実ネットワーク
2.1.2 人工ネットワーク
2.1.3 データ構造
2.2 ネットワークの可視化
2.3 中心性の計算
2.4 特徴量の計算
2.5 コミュニティの抽出
2.6 結果の出力、保存
練習問題
第3章 必要な用語を学ぶ-ネットワークの基礎知識
3.1 隣接行列、辺リスト
3.2 次数
3.2.1 次数、次数分布
3.2.2 有向グラフ、無向グラフ
3.2.3 多重辺、自己ループ
3.2.4 有向グラフから無向グラフへの変換
3.2.5 2部グラフ
3.3 パス
3.3.1 パスの概要
3.3.2 サイクル
3.3.3 非循環グラフ
3.3.4 直径
3.4 連結成分
3.4.1 連結、連結成分
3.4.2 強連結成分
3.4.3 連結性
3.5 グラフラプラシアン
3.6 クラスタ係数
3.7 次数相関
練習問題
第4章 中心を見つける-さまざまな中心性
4.1 さまざまな中心性の定義
4.2 次数中心性
4.3 固有ベクトル中心性
4.4 Katz中心性
4.5 PageRank
4.6 媒介中心性
4.7 近接中心性
4.8 中心性の比較
練習問題4
第5章 経路を見つける-ネットワークの探索
5.1 幅優先探索と深さ優先探索
5.2 ダイクストラのアルゴリズム
5.3 最大流最小カット
練習問題
第6章 グループを見つける-分割と抽出
6.1 ネットワーク分割
6.1.1 Kernighan-Linアルゴリズム
6.1.2 スペクトラル分割
6.2 コミュニティ抽出
6.2.1 ラベル伝搬
6.2.2 モジュラリティ最適化
6.2.3 スペクトラルなモジュラリティ最適化
練習問題
第7章 似たネットワークを作る-モデル化
7.1 次数分布
7.2 ランダムグラフ
7.3 コンフィギュレーションモデル
7.4 スケールフリーグラフ
7.5 スモールワールドグラフ
練習問題
第8章 似た頂点を見つける-将来の構造予測
8.1 頂点間の類似度
8.2 リンク予測
8.3 network embeddingによるリンク予測
練習問題
第9章 病気や口コミの広がりをモデル化する-感染、情報伝搬
9.1 SI model
9.2 SIR model
9.3 NDlibによるシミュレーション
9.4 その他の感染モデル
練習問題
第10章 ネットワークを俯瞰する-可視化による分析
10.1 静的なネットワーク可視化
10.2 インタラクティブなネットワーク可視化
10.3 本書で使用した可視化ツール
練習問題
第11章 リファレンス
11.1 参考文献
11.2 ネットワークデータ
11.3 ネットワーク分析の関連情報
11.4 本書の追加情報
練習問題解答
続きを見る