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
530
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ネットワーク分析してみた
NetworkXを使ってネットワークの分析をしてみたお話です.
(2019-06-27: おまけをつけました)
なごみそ
June 26, 2019
More Decks by なごみそ
See All by なごみそ
デレマス呼称表から見える アイドルの関係(?)
nagomiso
1
1.3k
ちょっとかしこく生きよう
nagomiso
0
640
JUMAN++で分かち書きをしたかった...
nagomiso
0
89
さよなら Storm
nagomiso
0
47
ここが変だよ Apache Storm
nagomiso
0
26
Other Decks in Programming
See All in Programming
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
8.9k
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
370
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
260
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
350
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.7k
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
170
광주소프트웨어마이스터고등학교 DevFest 특강 - 바이브 코딩 시대에서 주니어 개발자로 살아남는 방법
utilforever
1
110
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
580
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
620
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
110
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
120
継続モナドとリアクティブプログラミング
yukikurage
3
520
Featured
See All Featured
HDC tutorial
michielstock
2
740
Designing Powerful Visuals for Engaging Learning
tmiket
1
450
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
320
Mind Mapping
helmedeiros
PRO
1
280
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
320
YesSQL, Process and Tooling at Scale
rocio
174
15k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
170
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
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プロにおける交流の要・中心人物?
- 色々なアイドルの橋渡し的な存在. • 土屋亜子さんは交流の中心にはなれていない模様…… • 新実装アイドルたちは今後の交流に期待.
おまけ 選挙順位と中心性の散布図を描いてみた. ランクインするほど人気があるアイドルは やはり一定以上他のアイドルと交流がある模様 なーちゃんとりあむの ランクインはやはり特殊