目录

  • 一、度中心性(Degree Centrality)
  • 二、特征向量中心性(Eigenvector Centrality)
  • 三、Katz中心性(Katz Centrality)
  • 四、介数中心性(Betweeness Centrality)

在图中,节点的中心性(Centrality)用于衡量节点在图中的重要性。接下来,以下面这张图的节点为例,介绍一些常用的节点中心性及其计算过程。

一、度中心性(Degree Centrality)

如果有许多其他节点连接到某个节点,那么后者可以被认为是重要的。因此,可以基于一个节点的度测量它的中心性。更具体地说,对于节点viv_ivi​,其度中心性可以定义为:
cd(vi)=d(vi)=∑j=1NAi,jc_d(v_i)=d(v_i)=\sum_{j=1}^NA_{i,j} cd​(vi​)=d(vi​)=j=1∑N​Ai,j​
    由上面的公式可以知道,节点v1v_1v1​与v5v_5v5​的度中心性都是3,而节点v2v_2v2​、v3v_3v3​和v4v_4v4​的度中心性都是2。

二、特征向量中心性(Eigenvector Centrality)

度中心性认为与多个节点相邻的节点是重要的,且认为所有邻居的贡献度是一样的。然而,这些相邻节点本身的重要性是不同的,因此它们对中心节点的影响不同。给定一个节点viv_ivi​,特征向量中心性用它的相邻节点的中心性来定义viv_ivi​的中心性:
ce(vi)=1λ∑j=1NAi,j⋅ce(vj)c_e(v_i)=\frac{1}{\lambda}\sum_{j=1}^NA_{i,j}{\cdot}c_e(v_j) ce​(vi​)=λ1​j=1∑N​Ai,j​⋅ce​(vj​)    也可以表达为矩阵的形式:
ce(vi)=1λA⋅cec_e(v_i)=\frac{1}{\lambda}A{\cdot}c_e ce​(vi​)=λ1​A⋅ce​    式中,ce∈RNc_e{\in}R^Nce​∈RN是一个包含所有节点的特征向量中心性的向量,这个式子也可以表达为:
λ⋅ce(vi)=A⋅ce\lambda{\cdot}c_e(v_i)=A{\cdot}c_e λ⋅ce​(vi​)=A⋅ce​    显然,cec_ece​是矩阵的特征向量,λ\lambdaλ是其对应的特征值。一个邻接矩阵AAA存在多对特征向量和特征值。中心性的值通常为正数,所以选择中心性需要考虑所有元素均为正数的特征向量。根据Perron-Frobenius定理,一个元素全为正的实方阵具有唯一的最大特征值,其对应的特征向量的元素全为正。因此可以选择最大的特征值λ\lambdaλ,将它的相应的特征向量作为中心性向量。
    通过上面的公式进行计算,可以算出示例图中最大的特征值是2.481,对应的特征向量[1, 0.675, 0.675, 0.806, 1]。因此,v1,v2,v3,v4,v5v_1,v_2,v_3,v_4,v_5v1​,v2​,v3​,v4​,v5​的特征向量中心性分别是1,0.675,0.675,0.806,1。注意v2v_2v2​、v3v_3v3​和v4v_4v4​的度都是2,但是v4v_4v4​的特征向量中心性比另外两个节点的都要高,因为它和v1v_1v1​、v5v_5v5​两个高特征向量中心性的节点直接相连。

三、Katz中心性(Katz Centrality)

Katz中心性是特征向量中心性的一个变体,它不仅考虑了邻居的中心性,而且包含了一个常数来考虑中心节点本身。具体来说,节点viv_ivi​的Katz中心性可以定义为:
ck(vi)=α∑j=1NAi,jck(vj)+βc_k(v_i)={\alpha}\sum_{j=1}^NA_{i,j}c_k(v_j)+\beta ck​(vi​)=αj=1∑N​Ai,j​ck​(vj​)+β    式中,β\betaβ是一个常数。一个图中所有节点的Katz中心性可以用矩阵形式表示为:
ck=αAck+β(I−α⋅A)ck=βc_k={\alpha}Ac_k+\beta\\ (I-{\alpha}{\cdot}A)c_k=\beta ck​=αAck​+β(I−α⋅A)ck​=β    式中,ck∈RNc_k{\in}R^Nck​∈RN表示所有节点的Katz中心性的向量;β\betaβ表示一个包含所有节点的常数项β\betaβ的向量;III表示单位矩阵。值得注意的是,如果令α=1λmax{\alpha}=\frac{1}{\lambda_{max}}α=λmax​1​和β=0\beta=0β=0,那么Katz中心性等价于特征向量中心性,其中λmax{\lambda}_{max}λmax​是邻接矩阵AAA的最大特征值。α\alphaα的选择对于Katz中心性非常关键:大的α\alphaα值可能使矩阵I−α⋅AI-{\alpha}{\cdot}AI−α⋅A变成病态矩阵,而小的α\alphaα可能使中心性变得没有意义,因为它总是给所有节点分配非常相似的分数。在实践中,经常令α<1λmax{\alpha}<\frac{1}{\lambda_{max}}α<λmax​1​,这就保证了矩阵I−α⋅AI-{\alpha}{\cdot}AI−α⋅A的可逆性,那么ckc_kck​可按如下方式计算:
ck=(I−α⋅A)−1βc_k=(I-{\alpha}{\cdot}A)^{-1}\beta ck​=(I−α⋅A)−1β    令β=1,α=15\beta=1,\alpha=\frac{1}{5}β=1,α=51​,经过计算可得示例图中节点v1v_1v1​和v5v_5v5​的Katz中心性都是2.16,v2v_2v2​和v3v_3v3​的Katz中心性是1.79,v4v_4v4​的Katz中心性是1.87。

四、介数中心性(Betweeness Centrality)

前面提到的几种中心性基于和相邻节点的连接。另一种度量节点重要性的方法是检查它是否在图中处于重要位置。具体来说,如果有许多路通过同一个节点,那么该节点处于图中的一个重要位置。节点viv_ivi​的介数中心性的定义如下:
cb(vi)=∑vs≠vi≠vtσst(vi)σstc_b(v_i)=\sum_{v_s{\neq}v_i{\neq}v_t}\frac{\sigma_{st}(v_i)}{\sigma_{st}} cb​(vi​)=vs​​=vi​​=vt​∑​σst​σst​(vi​)​    式中,σst\sigma_{st}σst​表示所有从节点vsv_svs​到节点vtv_tvt​的最短路的数目(此处不区分vsv_svs​与vtv_tvt​);σst(vi)\sigma_{st}(v_i)σst​(vi​)表示这些路中经过节点viv_ivi​的路的数目。为了计算介数中心性,需要对所有可能的节点对求和。因此,介数中心性的值会随着图的增大而增大。为了使介数中心性在不同的图中具有可比性,需要对它进行归一化(normalization)。一种有效的方法是将所有节点的中心性除以其中的最大值。由上面介数中心性的公式可知,当任意一对节点之间的最短路都通过节点viv_ivi​时,介数中心性达到最大值,即σst(vi)σst=1,∀vs≠vi≠vt\frac{\sigma_{st}(v_i)}{\sigma_{st}}=1,{\forall}v_s{\neq}v_i{\neq}v_tσst​σst​(vi​)​=1,∀vs​​=vi​​=vt​。在一个无向图中,共有(N−1)(N−2)2\frac{(N-1)(N-2)}{2}2(N−1)(N−2)​个不包含节点viv_ivi​的节点对,所以介数中心性的最大值是(N−1)(N−2)2\frac{(N-1)(N-2)}{2}2(N−1)(N−2)​。所以viv_ivi​归一化后的介数中心性cnb(vi)c_{nb}(v_i)cnb​(vi​)可以定义为:
cnb(vi)=2×∑vs≠vi≠vtσst(vi)σst(N−1)(N−2)c_nb(v_i)=\frac{2{\times}\sum_{v_s{\neq}v_i{\neq}v_t}\frac{\sigma_{st}(v_i)}{\sigma_{st}}}{(N-1)(N-2)} cn​b(vi​)=(N−1)(N−2)2×∑vs​​=vi​​=vt​​σst​σst​(vi​)​​    在示例图中,节点v1v_1v1​和v5v_5v5​的介数中心性是23\frac{2}{3}32​,而它们归一化后的中心性是14\frac{1}{4}41​。节点v2v_2v2​和v3v_3v3​的介数中心性是12\frac{1}{2}21​,而它们归一化后的中心性是112\frac{1}{12}121​。节点v4v_4v4​的介数中心性和归一化的中心性均为0。

节点中心性:度中心性、特征向量中心性、Katz中心性、介数中心性相关推荐

  1. 复杂网络 介数中心性 java_复杂网络算法中K—shell与介数中心性算法的实现

    ! // 文章编号:1007-1423(2014)17-0007-05 DOI:10.3969~.issn.1007-1423.2014.17.002 复杂网络算法中K-shel与介数中心性算法的实现 ...

  2. 使用networkx计算网络的介数中心性

    网络节点的重要性指标介数中心性的计算,使用python的networkx包 import networkx as nxG = nx.Graph()# 从文件@filename中读取网络的adjacen ...

  3. 复杂网络 介数中心性 java_ego network 介数中心性计算

    下面是求节点介数的代码,介数就是指经过一个点的最短路径的比例,在计算复杂网络中节点重要性的时候会用到. /** * 用来计算介数 * 要计算所有的最短路径,用DIJ计算最短路径的时候我们可以发现一个规 ...

  4. python中心性评价_centrality 计算复杂网络中的节点或边 数中心性,基于python的 工具箱 matlab 238万源代码下载- www.pudn.com...

    文件名称: centrality下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Python 文件大小: 101 KB 上传时间: 2014-03-13 下载次数: 4 详细说明:计算 ...

  5. 指纹图谱相似度评价软件_基于指纹图谱和网络药理学对当归四逆汤中桂枝的Qmarker预测分析...

    摘  要:目的  基于指纹图谱和网络药理学分析预测当归四逆汤(DSD)中桂枝的质量标志物(Q-marker).方法 建立桂枝水煎液和DSD的指纹图谱,利用中药色谱指纹图谱相似度评价系统软件(2012年 ...

  6. 6-4 求一组数中的最大值、最小值和平均值

    6-4 求一组数中的最大值.最小值和平均值 编写函数,求一组数中的最大值.最小值和平均值. 函数接口定义: float fun(int a[],int n,int *max,int *min); 其中 ...

  7. networkx计算边的重要性:边介数或者中介中心性edge_betweenness

    背景 最近需要在一个节点数300+万,边400+万的有向图中删除某一些边的子集,但是又需要尽量减少对图的弱连通性的影响.最后的解决方案中一部分是,先将有向图转为无向图,计算边的betweenness, ...

  8. c语言输出度为1 的节点,计算机国家二级考试中的度为1和度为2是什么意思?老师说:总结点=叶子节点数+度为1+度为2,都是什么意思?...

    度是一个计算机的单位,度为1就说明该节点的个数为1,度为2就说明该节点的个数为2. 而度为0的结点叫叶子结点,由二叉树的性质可以知道在二叉树中叶子结点总是比度为2的结点多一个,故总结点=叶子节点数+度 ...

  9. Modularity的计算方法——社团检测中模块度计算公式详解(转)

    文章转自http://www.yalewoo.com/modularity_community_detection.html Modularity,中文称为模块度,是 Community Detect ...

最新文章

  1. StereoDRNet:基于stereo的三维重建网络
  2. Shell 脚本知识回顾 (四) —— Shell 命令及Shell 相关语句
  3. [转载] 晓说——第9期:多如牛毛严酷无比的美国那些法
  4. Android Drawable绘图学习笔记
  5. 在Visual C++中用ADO进行数据库编程(下)
  6. angularjs--控制器的显示与隐示使用
  7. 复杂json解析(json里面嵌套json)
  8. javase和java区别_javase和java有什么区别
  9. 乐视盒子u4刷Android,乐视盒子u4安装优酷
  10. orbslam2稠密版建图
  11. 空间解析几何 | 曲面的切平面与二元函数全微分的几何意义
  12. 纯代码蓝色理想的logo
  13. matlab版大学物理学,MATLAB可视化大学物理学(第2版)
  14. 前端规范之Git工作流规范 Husky + lint-staged
  15. 【UWB 定位】测距TOA 和 TDOA详解
  16. undefined is not a function
  17. 帝国cms php调用模板变量,帝国cms列表封面模板和内容模板变量的讲解
  18. 一首励志的歌曲《我相信》
  19. jmeter逻辑控制器之如果(if)控制器实战(二)
  20. final关键字、权限、内部类

热门文章

  1. Android .mk文件语法规范及使用模板
  2. 曾经觉得学习晦涩难懂的我是如何爱上linux
  3. VS code之代码格式化快捷键
  4. 区块链主流开源技术体系介绍(转)
  5. 实现微信小程序web-view内嵌H5中的下载功能(大文件切片下载)
  6. 完美解决eclipse中文注释错位、缩进、被放大BUG
  7. python多线程读取列表
  8. 【学习】线程池:获取任务执行结果get与取消任务cancel方法
  9. vim 删除文件单行或多行内容
  10. XML和注解(Annotation)