图论概念:Degree Centrality 和 Betweenness Centrality

该概念是我看到:

http://www.impactjournals.com/oncotarget/index.php?journal=oncotarget&page=article&op=view&path%5B%5D=14140&path%5B%5D=45094

中的:Degree Centrality Betweenness Centrality

【GSE44805 dataset】



知乎上讨论图论概念: https://www.zhihu.com/question/22610633


基本概念

最常见的度量节点Centrality的方式有三种:

clipboard (图来自:http://orgnet.com/sna.html

Degree Centrality:

这是最常见,也是最简单的方法。在无向网络中,我们可以用一个节点的度数(就是社交网络中用户的好友数)来衡量Centrality:

C_D(v)= \text{deg}(v)

上图,节点Diane的好友数最多,有6个人,所以她成为了Degree Centrality最高的节点。
真实的社交网络中,Degree Centrality高的那些人一般都是大明星,有很大的知名度,比如微博中的姚晨。

Closeness Centrality:

如果节点到图中其它节点的最短距离都很小,那么我们认为该节点的Closeness Centrality高。
这个定义其实比Degree Centrality从几何上更符合中心度的概念,因为到其它节点的平均最短距离最小,意味着这个节点从几何角度看是出于图的中心位置。
在上图中,Fernando和Garth虽然好友数不如Diane,但他们到其它所有节点的最短距离是最小的。(直观上说,Diane虽然好友数多,但离图的右半部分的节点更加的远)

Closeness Centrality高的节点一般扮演的是八婆的角色(gossiper)。他们并不是明星,但是乐于在不同的人群之间传递消息。

Betweenness Centrality:

这个概念解释稍微麻烦些。
对于网络中的两个节点A和B,他们之间的最短路径可能有很多条。
例如上图中的Andre和Garth,它们的最短路径可以是Andre-Diane-Garth, Andre-Beverly-Garth, Andre-Fernando-Garth,有三条。
计算网络中任意两个节点的所有最短路径,如果这些最短路径中有很多条都经过了某个节点,那么就认为这个节点的Betweenness Centrality高:

C_B(v)= \sum_{s \neq v \neq t \in V}\frac{\sigma_{st}(v)}{\sigma_{st}}

其中\sigma_{st}表示的是节点s和t之间的最短路径的数量,而\sigma_{st}(v)是最短路径中经过节点v的数量。

上图中,Heather就是Betweenness Centrality最高的节点,因为Ike和Jane到其它节点的路径都需要经过Heather。

概念的扩展

Degree Centrality的本质是什么?其实是到某个节点的距离为1的最短路径的数量。
在这个概念之上,我们可以做一些扩展,例如:
可以定义一种新的Centrality,表示到某个节点的距离为k的最短路径的数量 –  geodesic k-path centrality;还可以将最短路径的概念替换成Edge-disjoint path,centrality变成了 edge-disjoint k-path centrality;

“It is apparent that the variations among the degree-based measures are due entirely to the kinds of restrictions placed on the kinds of walks counted. This defines one typological dimension that we can use to classify measures. We refer to this dimension as Walk Type.”

Closeness Centrality采用的是两点间所有路径的最短值。一个可能的变种是不采用最短值,而是使用两点间所有路径的平均值;原始的定义是计算节点到网络中所有其它节点的最短路径长度,还可以考虑先定义一些关键的节点,我们只计算到这些关键节点的最短路径长度-centroid centrality;

degree-like measure“count the number or volume of walks (of some kind) joining each node to all others. We shall refer to these as volume measures. Another set of centrality measures assesses the lengths of the walks that a node is involved in. We call these length measures. The distinction between volume measures and length measures forms another classificatory dimension, which we call Walk Property.”

Betweenness Centrality计算的是经过某节点的最短路径的数量,一个可能的变种是不使用最短路径,而是采用所有经过该节点的路径数量。当然,所有的路径可能太宽泛了,可以只计算经过该节点的长度为k的路径 – k-betweenness centrality;

“All  of  the  measures  considered  so  far—including  both  the  volume  and  the  length measures—assess walks that emanate from or terminate with a given node. We shall refer to these as radial measures. Another class of centrality measures exists which are based on the number of walks that pass through a given node. We call these medial measures. The distinction between radial and medial measures forms the third classificatory dimension, which we call Walk Position.”

详细的centrality的扩展和分类见: “A Graph-theoretic perspective on centrality, 2006”

结语

为什么要提及概念的扩展。因为在大数据量下,经典的Closeness Centrality和Betwenness Centrality几乎都是不可计算的。我认为,在大数据的前提下,应该定义一些适合大规模计算的新的Centrality。
另外,从广义上说,PageRank其实也是一种定义网络中节点Centrality的方法。

—END—





---------------

heatmap: http://hemi.biocuckoo.org/index.php

直肠癌免疫评分: http://clincancerres.aacrjournals.org/content/20/7/1891.long#ref-15

https://greatpowerlaw.wordpress.com/2012/10/29/centrality/



### 中心性的定义及其重要性 中心性 (Centrality) 是图论网络分析中的一个重要概念,用于衡量节点在网络结构中的相对重要程度。不同的中心性度量方法可以揭示不同类型的节点特征。 #### 度中心性(Degree Centrality) 最简单的中心性指标是度中心性,它表示一个节点直接连接到其他多少个节点。对于无向图而言,就是该节点的邻接边数;而对于有向图,则分为入度(指向该节点的边数量)出度(从该节点发出的边数量)。这有助于识别社交网络中最活跃的人或是交通网络里的交通枢纽[^1]。 ```python import networkx as nx G = nx.Graph() edges = [(0, 1), (0, 2), (1, 3)] G.add_edges_from(edges) degree_centrality = nx.degree_centrality(G) print(degree_centrality) ``` #### 接近中心性(Closeness Centrality) 接近中心性反映了某个顶点到达其它所有顶点平均路径长度的程度。具有高接近中心性的节点能够快速访问整个网络内的大部分区域,在信息传播过程中扮演着至关重要的角色。例如,在疾病防控研究中,这些位置上的个体可能成为有效的疫苗接种对象。 ```python closeness_centrality = nx.closeness_centrality(G) print(closeness_centrality) ``` #### 中介中心性(Betweenness Centrality) 中介中心性用来评估某结点作为桥梁的能力——即有多少条最短路径会经过此节点来连接另外两组不相连的部分。这类节点往往控制着资源流动的方向并影响决策过程,因此在组织管理学里特别受到重视。 ```python betweenness_centrality = nx.betweenness_centrality(G) print(betweenness_centrality) ``` #### 特征向量中心性(Eigenvector Centrality) 除了考虑单个节点自身的连通情况外,有时还需要关注其邻居的重要性。此时可采用特征向量中心性来进行量化描述。如果一个节点与许多本身也很重要的节点相联,则它的得分也会相应提高。这种方法广泛应用于搜索引擎排名算法当中。 ```python eigenvector_centrality = nx.eigenvector_centrality(G) print(eigenvector_centrality) ``` 通过上述几种常见的中心性测量方式可以看出,每种方法都有各自的特点以及适用场景。理解它们可以帮助更好地解析复杂系统的内部运作机制,并为实际问题提供解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值