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
500
ネットワーク分析してみた
NetworkXを使ってネットワークの分析をしてみたお話です.
(2019-06-27: おまけをつけました)
なごみそ
June 26, 2019
Tweet
Share
More Decks by なごみそ
See All by なごみそ
デレマス呼称表から見える アイドルの関係(?)
nagomiso
1
1.2k
ちょっとかしこく生きよう
nagomiso
0
610
JUMAN++で分かち書きをしたかった...
nagomiso
0
82
さよなら Storm
nagomiso
0
44
ここが変だよ Apache Storm
nagomiso
0
21
Other Decks in Programming
See All in Programming
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
200
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
970
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
430
Implementation Patterns
denyspoltorak
0
140
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
250
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
2.1k
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
150
Developing static sites with Ruby
okuramasafumi
0
340
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
290
Python札幌 LT資料
t3tra
7
1.1k
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
130
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
36k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
120
Un-Boring Meetings
codingconduct
0
170
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
130
Building Flexible Design Systems
yeseniaperezcruz
330
39k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
400
The Cult of Friendly URLs
andyhume
79
6.7k
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Visualization
eitanlees
150
16k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
Utilizing Notion as your number one productivity tool
mfonobong
2
190
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
81
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プロにおける交流の要・中心人物?
- 色々なアイドルの橋渡し的な存在. • 土屋亜子さんは交流の中心にはなれていない模様…… • 新実装アイドルたちは今後の交流に期待.
おまけ 選挙順位と中心性の散布図を描いてみた. ランクインするほど人気があるアイドルは やはり一定以上他のアイドルと交流がある模様 なーちゃんとりあむの ランクインはやはり特殊