Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ネットワーク分析してみた
Search
なごみそ
June 26, 2019
Programming
2
480
ネットワーク分析してみた
NetworkXを使ってネットワークの分析をしてみたお話です.
(2019-06-27: おまけをつけました)
なごみそ
June 26, 2019
Tweet
Share
More Decks by なごみそ
See All by なごみそ
デレマス呼称表から見える アイドルの関係(?)
nagomiso
1
1.1k
ちょっとかしこく生きよう
nagomiso
0
600
JUMAN++で分かち書きをしたかった...
nagomiso
0
67
さよなら Storm
nagomiso
0
38
ここが変だよ Apache Storm
nagomiso
0
15
Other Decks in Programming
See All in Programming
NPOでのDevinの活用
codeforeveryone
0
630
datadog dash 2025 LLM observability for reliability and stability
ivry_presentationmaterials
0
400
Deep Dive into ~/.claude/projects
hiragram
10
2.2k
C++20 射影変換
faithandbrave
0
560
PostgreSQLのRow Level SecurityをPHPのORMで扱う Eloquent vs Doctrine #phpcon #track2
77web
2
420
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
670
AIプログラマーDevinは PHPerの夢を見るか?
shinyasaita
1
180
Cursor AI Agentと伴走する アプリケーションの高速リプレイス
daisuketakeda
1
130
童醫院敏捷轉型的實踐經驗
cclai999
0
210
Select API from Kotlin Coroutine
jmatsu
1
210
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
260
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
390
Featured
See All Featured
Adopting Sorbet at Scale
ufuk
77
9.4k
RailsConf 2023
tenderlove
30
1.1k
Done Done
chrislema
184
16k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Facilitating Awesome Meetings
lara
54
6.4k
Music & Morning Musume
bryan
46
6.6k
Designing Experiences People Love
moore
142
24k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
950
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
The Language of Interfaces
destraynor
158
25k
Transcript
ネットワーク分析してみた 2019-06-26 なごみそ@Kawasaki.rb#73
Kawasaki.rb 6周年 おめでとうございます
自己紹介 •なごみそ(@NagominHotMotto) •仕事: お盆と年末に有明で戦うこと.
ネットワーク分析 •対象をネットワーク構造(=グラフ)として 表現してその特性を分析すること. - e.g., • PageRankによるページの重要度付け • SNSにおいて影響力があるユーザを探す など
グラフとは •頂点 (vertex, node), 辺 (edge), 点と辺の対応付け からなる構造のこと. • 数学的には以下の3つ組
(V, E, Ψ) のこと. - 点集合: V - 辺集合: E - 対応付: v u w 辺 頂点
プログラムでグラフを扱う NetworkX • Pythonでグラフを扱うライブラリ. • ほぼPure Pythonで実装されている. - Numpy, Scipyもあまり使われていない.
- 大規模グラフを扱うときはGraphXとかNeo4jとかを使ったほうがよい. • ちなみに - SciRubyにはnetworkx.rbなるライブラリがある!!! - でも眺めた感じはまだ機能が少ない.
NetworkXでのグラフ定義 とっても簡単 import networkx as nx G = nx.Graph() #
Vertexの追加. G.add_node('u') G.add_node('v') G.add_node('w') # Edgeの追加, 点と辺の対応付け. G.add_edge('u', 'v') G.add_edge('u', 'w') # 点集合. print(G.nodes) # => ['u', 'v', 'w'] # 辺集合. print(G.edges) # => [('u', 'v'), ('u', 'w')] v u w
NetworkXでできること(一部紹介) •最短経路探索 - 点uから点vに到達するまでに辿る最短経路を見つける. •グラフ同士の類似度算出 - グラフ同士がどれだけ似ているかの指標を算出する. •中心性算出 - 各点を特徴づける指標を算出する.
NetworkXでできること(一部紹介) •最短経路探索 - 点uから点vに到達するまでに辿る最短経路を見つける. •グラフ同士の類似度算出 - グラフ同士がどれだけ似ているかの指標を算出する. •中心性算出 - 各点を特徴づける指標を算出する.
中心性: 次数中心性 •頂点に接続された辺の数(次数)で決まる指標. •直接繋がりが多い頂点が中心. # 次数中心性. centrality = nx.degree_centrality(G) print(centrality['u'])
# => 2/2 = 1.0 print(centrality['v']) # => 1/2 = 0.5 print(centrality['w']) # => 1/2 = 0.5 v u w
中心性: 近接中心性 •他の頂点との距離が近いほど高くなる指標. •どの頂点からも平均的に近い頂点が中心. # 近接中心性. centrality = nx.closeness_centrality(G) print(centrality['u'])
# => 2/(1+1) = 1.0 print(centrality['v']) # => 2/(1+2) = 0.666 print(centrality['w']) # => 2/(1+2) = 0.666 v u w
中心性: 媒介中心性 •頂点を通る経路が多いほど高くなる指標. •他の頂点へ繋がる際多く経由される頂点が中心. # 媒介中心性. centrality = nx.betweenness_centrality(G) print(centrality['u'])
# => 1/1 = 1.0 print(centrality['v']) # => 0.0 print(centrality['w']) # => 0.0 v u w
実践(?) 346プロダクションの人間関係を見てみる
346プロの人間関係を見てみる 利用データ • アイドルマスターシンデレラガールズ呼称表 (参考: https://cgcall.negipo.cc/) - 346プロ所属アイドル同士の呼称が記載されている. • e.g.,
- 島村卯月 → 渋谷凛 = 凛ちゃん - 渋谷凛 → 島村卯月 = 卯月 • 呼称データが存在するアイドルは交流があると考える. - 「頂点=アイドル」, 「辺=呼称有り関係」のネットワーク.
346プロの中心人物は誰か? •ネットワークから中心性を算出. •中心性から346プロ内における交流のコア人物を 見つける. 注意 • あくまで一指標(中心性)で見るとどうかの話です. • 特定のアイドルに対する絶対的な評価とはなりません.
中心性トップ10 順位 次数中心性 近接中心性 媒介中心性 1 本田未央 1.0160 川島瑞樹 0.5593
本田未央 0.0671 2 諸星きらり 0.4894 諸星きらり 0.5576 乙倉悠貴 0.0269 3 大槻唯 0.4840 白坂小梅 0.5510 双葉杏 0.0261 4 川島瑞樹 0.4787 堀裕子 0.5461 前川みく 0.0225 5 多田李衣菜 0.4628 西園寺琴歌 0.5444 脇山珠美 0.0219 6 小早川紗枝 0.4521 島村卯月 0.5397 藤原肇 0.0214 7 堀裕子 0.4362 安部菜々 0.5397 川島瑞樹 0.0212 8 島村卯月 0.4309 大槻唯 0.5365 堀裕子 0.0202 9 渋谷凛 0.4309 小早川紗枝 0.5365 大槻唯 0.0195 10 藤原肇 0.4202 佐久間まゆ 0.5365 西園寺琴歌 0.0180 コミュ力が高そうなアイドルが上位にいる
中心性トップ10 順位 次数中心性 近接中心性 媒介中心性 1 本田未央 1.0160 川島瑞樹 0.5593
本田未央 0.0671 2 諸星きらり 0.4894 諸星きらり 0.5576 乙倉悠貴 0.0269 3 大槻唯 0.4840 白坂小梅 0.5510 双葉杏 0.0261 4 川島瑞樹 0.4787 堀裕子 0.5461 前川みく 0.0225 5 多田李衣菜 0.4628 西園寺琴歌 0.5444 脇山珠美 0.0219 6 小早川紗枝 0.4521 島村卯月 0.5397 藤原肇 0.0214 7 堀裕子 0.4362 安部菜々 0.5397 川島瑞樹 0.0212 8 島村卯月 0.4309 大槻唯 0.5365 堀裕子 0.0202 9 渋谷凛 0.4309 小早川紗枝 0.5365 大槻唯 0.0195 10 藤原肇 0.4202 佐久間まゆ 0.5365 西園寺琴歌 0.0180 その中でもちゃんみおがブッチギリ コミュ力が高そうなアイドルが上位にいる
•明らかに本田未央の中心性が高い. 中心性の分布を見てみる ちゃんみお 0.5111
•ちなみに私の推しである土屋亜子さんは…… 中心性の分布を見てみる 亜子 0.4221 0.0904 0.001230
None
その他(2019年実装の新人たち) •白雪千夜, 黒崎ちとせ, 久川颯, 夢見りあむは媒介 中心性が0.00だった. •砂塚あきらが孤立頂点になっていて中心性が算 出できなかった. •辻野あかりの媒介中心性はなんと新田美波より 高い.
- 夢見りあむとその他の346プロメンバーの橋渡しに なっている.
まとめ • NetworkXを使うと簡単にネットワーク分析ができる. - 関数一つでパッと各種計算が可能. • 中心性を計算するとコミュ力が高そうなアイドルが上 位に来ていた. • ちゃんみおが346プロにおける交流の要・中心人物?
- 色々なアイドルの橋渡し的な存在. • 土屋亜子さんは交流の中心にはなれていない模様…… • 新実装アイドルたちは今後の交流に期待.
おまけ 選挙順位と中心性の散布図を描いてみた. ランクインするほど人気があるアイドルは やはり一定以上他のアイドルと交流がある模様 なーちゃんとりあむの ランクインはやはり特殊