Skip to content

建立 2026-09-14 更新 2026-09-14

中心性

中心性(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 天生適合有向連結。

權重

nx.betweenness_centrality(G, weight="weight")
nx.pagerank(G, weight="weight")

Betweenness 把權重當距離;PageRank 把權重當沿邊走的相對機率。同一個 weight 欄位,兩個演算法解讀不同,使用前要對齊語意。

不要只看一個分數

空手道社資料裡,度很高的人是社長與教練;betweenness 高的人則可能是兩邊團體的橋。社群衝突研究正是靠這種差異,而不是只看誰朋友最多。

圖很大時,精確 betweenness 很貴。可用 k= 做隨機取樣近似:

nx.betweenness_centrality(G, k=20, seed=1)