中心性
中心性(centrality)回答「誰比較重要」。重要有好幾種定義,選錯指標會得到看起來很科學、但其實答錯問題的排名。
四種最常用的
import networkx as nx
G = nx.karate_club_graph()
deg = nx.degree_centrality(G)
close = nx.closeness_centrality(G)
betw = nx.betweenness_centrality(G)
pr = nx.pagerank(G)
每個函式回傳 {node: score}。可用 max(betw, key=betw.get) 找出最高分的節點。
| 指標 | 在衡量什麼 | 直覺 |
|---|---|---|
| Degree | 直接鄰居有多少 | 人緣、樞紐 |
| Closeness | 到其他點平均有多近 | 訊息擴散起點 |
| Betweenness | 有多少最短路徑經過我 | 橋樑、守門人 |
| PageRank | 被重要鄰居指向 | 聲望、網頁排名 |
有向圖的 degree 可拆成 in / out;PageRank 天生適合有向連結。
權重
Betweenness 把權重當距離;PageRank 把權重當沿邊走的相對機率。同一個 weight 欄位,兩個演算法解讀不同,使用前要對齊語意。
不要只看一個分數
空手道社資料裡,度很高的人是社長與教練;betweenness 高的人則可能是兩邊團體的橋。社群衝突研究正是靠這種差異,而不是只看誰朋友最多。
圖很大時,精確 betweenness 很貴。可用 k= 做隨機取樣近似: