紧密中心度(Closeness Centrality)

1、概念

紧密中心度(Closeness Centrality)衡量了某个顶点与其它顶点的平均距离,其值越高说明该顶点与其它顶点的距离越短。

2、公式

顶点 v i v_i vi的紧密中心度 C c C_c Cc

C c ( v i ) = 1 ∑ v j ≠ v i l ( v i , v j ) C_c(v_i) =\frac{1}{\displaystyle \sum^{}_{v_j \neq v_i}l(v_i,v_j)} Cc(vi)=vj=vil(vi,vj)1

其中 l ( v i , v j ) l(v_i,v_j ) l(vi,vj)表示顶点 v i v_i vi与顶点 v j v_j vj之间的最短路径长度。公式同时适用于加权图。

类似度中心度,紧密中心度对有向图也可以使用入度或者出度作为紧密中心度:

C c i n ( v i ) = 1 ∑ v j ≠ v i l ( v i , v j ) i n C^{in}_c(v_i) =\frac{1}{\displaystyle \sum^{}_{v_j \neq v_i}l^{in}_{(v_i,v_j)}} Ccin(vi)=vj=vil(vi,vj)in1
C c o u t ( v i ) = 1 ∑ v j ≠ v i l ( v i , v j ) o u t C^{out}_c(v_i) =\frac{1}{\displaystyle \sum^{}_{v_j \neq v_i}l^{out}_{(v_i,v_j)}} Ccout(vi)=vj=vil(vi,vj)out1

其中 l ( v i , v j ) i n l^{in}_{(v_i,v_j)} l(vi,vj)in表示顶点 v j v_j vj到顶点 v i v_i vi的最短路径长度; l ( v i , v j ) o u t l^{out}_{(v_i,v_j)} l(vi,vj)out表示顶点 v i v_i vi到顶点 v j v_j vj的最短路径长度。

使用入度时,紧密中心度衡量了信息到达顶点的能力,表示突出性;使用出度时,紧密中心度衡量了信息流出顶点的能力。

归一化

与前面的度中心度和介数中心度不同的是,紧密中心度需要最小紧密中心度来衡量不同规模的网络。

极端情况下,图的某个顶点可以仅通过距离为1的路径到达其余所有顶点,这就是距离最小和n-1出现的情况。因此紧密中心度的归一化为:

C c ′ ( v i ) = n − 1 C c ( v i ) C'_c(v_i) = \frac{n-1}{C_c(v_i)} Cc(vi)=Cc(vi)n1

Closeness centrality,也称为中心性算法,是一种用于计算网络节点之间距离的算法。它可以帮助我们了解网络中节点与其他节点的关系紧密程度。 Closeness centrality算法的作用是计算一个节点到其他节点的平均距离。这个平均距离可以衡量节点在网络中的集中度。具体地说,Closeness centrality算法通过计算节点到其他节点的最短路径长度来衡量节点与其他节点的紧密程度。 在JavaScript中,我们可以使用不同的方法来实现Closeness centrality算法。一种常用的方法是使用图算法库,如NetworkX.js或graph.js来计算节点之间的距离。 首先,我们需要将网络表示为一个图,每个节点表示网络中的一个元素,每条边表示节点之间的连接。然后,我们可以使用图算法库提供的函数来计算节点之间的最短路径。 接下来,计算每个节点到其他节点的最短路径长度,并将它们相加得到总和。最后,将总和除以所有节点的数量,就得到了每个节点的Closeness centrality值。 下面是一个简单的JavaScript代码示例,使用NetworkX.js库实现Closeness centrality算法: ```javascript // 导入NetworkX.js库 const nx = require('networkx'); // 创建一个有向图 const G = new nx.DiGraph(); // 添加节点 G.addNode(1); G.addNode(2); G.addNode(3); G.addNode(4); // 添加边 G.addEdge(1, 2); G.addEdge(2, 3); G.addEdge(3, 4); // 计算Closeness centrality值 const closenessCentrality = nx.centrality.closeness(G); // 打印结果 console.log(closenessCentrality); // { '1': 0.5, '2': 0.6666666666666666, '3': 0.5, '4': 0.6666666666666666 } ``` 以上代码创建了一个有向图,其中节点1、2、3和4之间存在连接。然后使用nx.centrality.closeness函数计算了每个节点的Closeness centrality值,并将结果打印输出。 这就是使用JavaScript实现Closeness centrality算法的基本方法。使用图算法库可以简化计算过程,并使我们能够更方便地理解网络节点之间的关系紧密程度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值