SlideShare a Scribd company logo
1 of 24
Download to read offline
オープンソースで学ぶ
社会ネットワーク分析
 2章グラフ理論スピード入門

社会ネットワーク分析勉強会
   @teruu (てる)
    2012/07/05
目次
•   1章   イントロダクション
•   2章   グラフ理論スピード入門
•   3章   中心性、権力、ボトルネック
•   4章   クリーク、クラスタ、コンポーネント
•   5章   2モードネットワーク
•   6章   バイラルへ!―情報の拡散
•   7章   現実のグラフデータ
グラフ理論スピード入門
•   グラフとは何か
•   グラフのトラバーサルと距離
•   グラフの距離
•   なぜこれが重要なのか
•   6次の隔たりは神話に過ぎない
•   スモールワールドネットワーク

グラフ理論とPythonの話題が混在
→ 初心者には難しい
自己紹介
• お仕事
 – 元DBエンジニア
 – 現在、データマイニング専業のベンチャー所属
 – 派遣先で、ソーシャルネットワークの分析に携わ
   る
• 大学院で修士課程を修了(2011年3月卒)
 – 修論テーマ:小売業の購買履歴分析
 – (グラフ理論の視点からとらえ直すと)二部グラフ
   のクラスタリング問題
グラフ理論スピード入門
•   グラフとは何か
•   グラフのトラバーサルと距離
•   グラフの距離
•   なぜこれが重要なのか
•   6次の隔たりは神話に過ぎない
•   スモールワールドネットワーク
グラフとは何か
    ダイアド(2者関係、diad)
    ノード(頂点、node)
    エッジ(辺、関係、edge)


                       E1
               N1     好き    N2
                     (動詞)
              アリス            ボブ
              (名詞)          (名詞)




6
グラフとは何か

    グラフの種類
    – 向き:無向⇔有向
    – 重み:重みなし⇔重みつき
    – モード:1モードグラフ(一部グラフ、unipartite)
          2モードグラフ(二部グラフ、bipartite) →5章
          マルチモードグラフ(?部グラフ、multipartite) →6章




7
グラフの向き:無向⇔有向




(A)無向・重みなし・一部グラフ   (B)有向・重みなし・一部グラフ
グラフの重み:重みなし⇔重みつき




 (A)有向・重みなし・一部グラフ   (B)有向・重みつき・一部グラフ
グラフのモード:
   一部グラフ⇔二部グラフ




(A)無向・重みなし・一部グラフ   (B)無向・重みなし・二部グラフ
隣接行列、エッジリスト、隣接リスト


                            グラフ2:無向、重み無し、二部グラフ
グラフ1:有向、重み付き、(一部)グラフ                    (bipartite)
             (unipartite)




     グラフ




隣接行列




11
隣接行列、エッジリスト、隣接リスト
                 from to value
                    AB2
                    AD5
                    AE5
                    BA2
                    BD1
   ABCDE            CD3
  A02055                         from    edges
                    CE4
                                   A    (B 2),(D   5),(E 5)
  B20010            DA5
                                   B    (A 2),(D   1)
  C00034            DB1
                                   C    (D 3),(E   4)
  D51300            DC3
                                   D    (A 5),(B   1),(C 3)
  E50400            EA5
                                   E    (A 5),(C   4)
                    EC4

(A)隣接行列        (B)エッジリスト         (C)隣接リスト

デメリット:メモリの無駄   メリット:メモリ効率的       メリット:メモリ効率的
               デメリット:高速サーチ不可           高速サーチ可能
                                 デメリット:パース処理面倒
グラフとは何か
• 隣接行列
• エッジリストと隣接リスト
• ケーニヒスベルクの7つの橋
グラフのトラバーサルと距離
• 深さ優先探索
 – 実装
 – NetworkXによるDFS
• 幅優先探索
 – アルゴリズム
 – NetworkXによるBFS
• 単純路と通路
• ダイクストラのアルゴリズム
グラフのトラバーサルと距離
• 深さ優先探索(DFS)
  0→1 →3 →2 →5 →6 →4 →7 →8 →9




                  (1)何らかのノードnからスタートする。
                  (2)nに訪問済みのマークを付ける。
                  (3)nに隣接する未訪問の個々のniについて、
                  以下の処理を繰り返す。
                       (4)再帰的にノードniにDFSを適用する。
• 幅優先探索(BFS)
  0→1 →2 →3 →5 →4 →6 →7 →8 →9




               (1)ノードnからスタートする。
               (2)待ち行列Qを作る。
               (3)nに訪問済みのマークを付ける。
               (4)nをQにエンキューする。
               (5)Qが空でない間、以下の処理を繰り返す。
                     (6-1)Qからnをデキューする。
                    (6-2)nに隣接する未訪問の個々のniについて、
                     以下の処理を繰り返す。
                          (7-1)niに訪問済みのマークを付ける。
                            (7-2)niをQにエンキューする。
単純路と通路
• 単純路:各ノードを1度だけ通るパス(通路)
 – 開いた/閉じた
 – 閉路(閉じた単純路)

• ダイクストラのアルゴリズム(1959年)
 – もっともコストの低い単純路を見つける
• Networkx:2つの最短単純路アルゴリズム
 – dijkstra_path
 – shortest_path
グラフの距離
• 指標が複数ある
 – 最短単純路
  • ノードAからBまでのエッジの数
 – コストに基づく最短単純路
  • 重みつきグラフ
 – ユークリッド距離
  • 隣接行列から計算
グラフの直径
• あるノードから別のノードへ移動
 – 通過するノード数の最大値
なぜこれが重要なのか
• グラフの距離
 – グラフを量的に分析する手段
 – ネットワーク参加者の影響力を評価
6次の隔たりは神話に過ぎない
• ミルグラムのスモールワールド実験(1969年)
 – 6次の隔たり


• 神話?
スモールワールドネットワーク




            (格子)

    直径=5                   直径=3


17本のエッジのうち5本をランダムに置き換える
→グラフの形は大きく変わらないが、直径が5→3に
複雑ネットワークの歴史
• 1736年 オイラーがケーニヒスベル
  グの七つの橋の問題をグラフを用い
  て解決
   (一筆書きが不可能であることを証明)
   → グラフ理論の誕生

• 1967年 ミルグラムのスモールワー
  ルド実験
• 1998年 ワッツとストロガッツのス
  モールワールド・ネットワーク
• 1999年 バラバシとアルバートのス
  ケールフリー・ネットワーク
Python/Networkx
• 後ほど演習にて

• Networkx (http://networkx.lanl.gov/)

• Ipython問題?

More Related Content

What's hot

距離まとめられませんでした
距離まとめられませんでした距離まとめられませんでした
距離まとめられませんでした
Haruka Ozaki
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
Miyoshi Yuya
 
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とRブートストラップ法とその周辺とR
ブートストラップ法とその周辺とR
Daisuke Yoneoka
 

What's hot (20)

SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
 
lsh
lshlsh
lsh
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
 
ZDD基礎
ZDD基礎ZDD基礎
ZDD基礎
 
Deep walk について
Deep walk についてDeep walk について
Deep walk について
 
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしないPyMCがあれば,ベイズ推定でもう泣いたりなんかしない
PyMCがあれば,ベイズ推定でもう泣いたりなんかしない
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
距離まとめられませんでした
距離まとめられませんでした距離まとめられませんでした
距離まとめられませんでした
 
【DL輪読会】Towards Understanding Ensemble, Knowledge Distillation and Self-Distil...
【DL輪読会】Towards Understanding Ensemble, Knowledge Distillation and Self-Distil...【DL輪読会】Towards Understanding Ensemble, Knowledge Distillation and Self-Distil...
【DL輪読会】Towards Understanding Ensemble, Knowledge Distillation and Self-Distil...
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
クラシックな機械学習の入門 6. 最適化と学習アルゴリズム
クラシックな機械学習の入門  6. 最適化と学習アルゴリズムクラシックな機械学習の入門  6. 最適化と学習アルゴリズム
クラシックな機械学習の入門 6. 最適化と学習アルゴリズム
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 
Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理Rでのtry関数によるエラー処理
Rでのtry関数によるエラー処理
 
幾何と機械学習: A Short Intro
幾何と機械学習: A Short Intro幾何と機械学習: A Short Intro
幾何と機械学習: A Short Intro
 
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
 
Bayesian Neural Networks : Survey
Bayesian Neural Networks : SurveyBayesian Neural Networks : Survey
Bayesian Neural Networks : Survey
 
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
 
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とRブートストラップ法とその周辺とR
ブートストラップ法とその周辺とR
 

Viewers also liked (6)

複雑ネットワーク勉強会 二部グラフの基礎と応用 20120208
複雑ネットワーク勉強会  二部グラフの基礎と応用 20120208複雑ネットワーク勉強会  二部グラフの基礎と応用 20120208
複雑ネットワーク勉強会 二部グラフの基礎と応用 20120208
 
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
『オープンソースで学ぶ社会ネットワーク分析』1章 イントロダクション
 
2部グラフとソーシャルネットワーク
2部グラフとソーシャルネットワーク2部グラフとソーシャルネットワーク
2部グラフとソーシャルネットワーク
 
Sna book chapter_5
Sna book chapter_5Sna book chapter_5
Sna book chapter_5
 
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
 
Pythonで簡単ネットワーク分析
Pythonで簡単ネットワーク分析Pythonで簡単ネットワーク分析
Pythonで簡単ネットワーク分析
 

Similar to 2章グラフ理論スピード入門

CEDEC2015 サブディビジョンサーフェスの すべてがわかる
CEDEC2015 サブディビジョンサーフェスの すべてがわかるCEDEC2015 サブディビジョンサーフェスの すべてがわかる
CEDEC2015 サブディビジョンサーフェスの すべてがわかる
Takahito Tejima
 
Ruby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrakeRuby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrake
Masahiro Tanaka
 
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム
Takuya Akiba
 

Similar to 2章グラフ理論スピード入門 (10)

FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape AnalysisFeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
 
The boolean operation for Cubic Bezier
The boolean operation for Cubic BezierThe boolean operation for Cubic Bezier
The boolean operation for Cubic Bezier
 
文献紹介:Gate-Shift Networks for Video Action Recognition
文献紹介:Gate-Shift Networks for Video Action Recognition文献紹介:Gate-Shift Networks for Video Action Recognition
文献紹介:Gate-Shift Networks for Video Action Recognition
 
第126回 ロボット工学セミナー 三次元点群と深層学習
第126回 ロボット工学セミナー 三次元点群と深層学習第126回 ロボット工学セミナー 三次元点群と深層学習
第126回 ロボット工学セミナー 三次元点群と深層学習
 
CEDEC2015 サブディビジョンサーフェスの すべてがわかる
CEDEC2015 サブディビジョンサーフェスの すべてがわかるCEDEC2015 サブディビジョンサーフェスの すべてがわかる
CEDEC2015 サブディビジョンサーフェスの すべてがわかる
 
Ruby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrakeRuby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrake
 
文献紹介:Learning Video Stabilization Using Optical Flow
文献紹介:Learning Video Stabilization Using Optical Flow文献紹介:Learning Video Stabilization Using Optical Flow
文献紹介:Learning Video Stabilization Using Optical Flow
 
関数モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第8回】
関数モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第8回】関数モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第8回】
関数モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第8回】
 
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム
 
Learning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data ManifoldLearning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data Manifold
 

More from Teruo Kawasaki (9)

Lambda in java_20160121
Lambda in java_20160121Lambda in java_20160121
Lambda in java_20160121
 
Pentaho ETL ハンズオン
Pentaho ETL ハンズオンPentaho ETL ハンズオン
Pentaho ETL ハンズオン
 
Pentaho 定型レポート ハンズオン
Pentaho 定型レポート ハンズオンPentaho 定型レポート ハンズオン
Pentaho 定型レポート ハンズオン
 
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
 
Pentaho CTools 20140902
Pentaho CTools 20140902Pentaho CTools 20140902
Pentaho CTools 20140902
 
Pentaho Reporting Tutorial 20140729
Pentaho Reporting Tutorial 20140729Pentaho Reporting Tutorial 20140729
Pentaho Reporting Tutorial 20140729
 
About BI (2014/03/25)
About BI (2014/03/25)About BI (2014/03/25)
About BI (2014/03/25)
 
Pdi tutorial 20140121
Pdi tutorial 20140121Pdi tutorial 20140121
Pdi tutorial 20140121
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoop
 

Recently uploaded

Recently uploaded (10)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

2章グラフ理論スピード入門