python中心性评价_复杂网络中边的中心性(Edge Centrality)

论坛 期权论坛 脚本     
已经匿名di用户   2022-4-26 15:52   2426   0

一分钟读完全文

补充了OSMNX给的官方demo中的一些未描述清楚的地方。对复杂网络中的主要用到的两种边中心性betweenness centrality以及current-flow closeness centrality进行了科普性介绍。不涉及对点的centrality如degree的介绍。主要基于osmnx与networkx。开发环境为python 3.6。什么是中心性

中心性在网络中的初衷是为了表示边和点的重要度。但重要度也有很多不同的衡量模式,比方说,有些边的连通性很好,你可以认为他重要;有的边在最短路中出现的频次高,他也可以被认为重要;而且,如何评价路径最短也是不定的。因而,也催生出多种不同的Centrality。我们在networkx的官网下看到的Centrality就有(不限于以下几种):

其中,degree和closeness都是指的node,当然你也可以用来指边。在OSMNX给的官方DEMO里面就有计算edge的closeness。而实际上,从上图来看,networkx里面给了edge接口的只有betweenness。什么是betweenness

官方定义是:Betweenness centrality of an edge is the sum of the fraction of all-pairs shortest paths that pass through. 已经说得很直白了,就是计算所有网络间节点的最短路,然后对每条边统计最短路经过的次数,并以每对节点间的最短路条数进行归一:

如何计算这个Betweenness呢,很简单。我这里直接从osmnx上下载的路网,然后导入进去,就可以计算。

import networkx as nx

import osmnx as ox

import os

G = ox.graph_from_place('Seattle, State of Washington,USA', network_type='drive')

G_projected = ox.project_graph(G)

edge_centrality = nx.edge_betweenness_centrality(G_projected)什么是current-flow betweenness

如果说Betweenness是理性出行的话,current-flow betweenness基本就是佛系出行了。官方定义为:Current-flow betweenness centrality uses an electrical current model for information spreading in contrast to betweenness centrality which uses shortest paths.又强调说:Current-flow betweenness centrality is also known as random-walkbetweenness centrality。

值得注意的是,Current-flow betweenness centrality是不对directed graph进行计算的,因此,对于有向网络,需要先去除方向:

edge_current_flow = nx.edge_current_flow_betweenness_centrality(G_projected.to_undirected())点的中心性指标可以用于边上吗

也是可以的。OSMNX就给出了这样的demo:gboeing/osmnx-examplesgithub.com

在计算边的中心性时,Demo说:edge closeness centrality: convert graph to a line graph so edges become nodes and vice versa。这里的中心性,实际是指closeness centrality,而closeness centrality实际是点的属性,因此也就出现了先把边变成点的操作了。

而比较奇葩的是,network2.1还不能用line_graph来处理multigraph的情况。需要找到networkx下的line.py源文件,把第24行@not_implemented_for('multigraph')注释掉:中心性有什么用

一个比较常用的例子就是把它作为自变量输入到模型中,比如做道路流量预测的时候,Betweenness centrality 往往会是一个很重要的变量。当然如果网络很大的话,计算起来也是非常的慢的,需要耐心等待。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP