当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python cugraph.centrality.betweenness_centrality.edge_betweenness_centrality用法及代码示例


用法:

cugraph.centrality.betweenness_centrality.edge_betweenness_centrality(G, k=None, normalized=True, weight=None, seed=None, result_dtype=<class 'numpy.float64'>)

计算图 G 的所有边的边中介中心性。中介中心性是对通过边的最短路径数量的度量。具有高中介中心性分数的边有更多的路径经过它,因此被认为更重要。

为了提高性能,可以使用 k 个起始顶点的样本,而不是执行 all-pair 最短路径。

CuGraph 目前不支持 ‘weight’ 参数,如相应的 networkX 调用中所示。

参数

GcuGraph.Graph 或 networkx.Graph

该图可以是有向的 (Graph(directed=True)) 或无向的。图中的权重被忽略,当前实现使用 BFS 遍历。如果需要考虑权重,则使用权重参数(目前不支持)

kint or list or None, optional (default=None)

如果 k 不是 None,则使用 k 个节点样本来估计介数。较高的值给出更好的近似值。如果 k 是一个列表,则使用列表的内容进行估计:列表应该包含顶点标识符。通过采样获得或定义为列表的顶点将用作算法内部遍历的源。

normalized布尔,可选(默认=真)

默认为真。如果为真,则对于无向图,介数值通过 2 /(n * (n - 1)) 进行归一化,对于有向图,将通过 1 /(n * (n - 1)) 进行归一化,其中 n 是 G 中的节点数。归一化将确保值在 [0, 1] 中,这种归一化会针对每条最短路径穿过一条边的最高可能值进行缩放。

weightcudf.DataFrame,可选(默认=无)

指定要用于每条边的权重。应该包含边和权重之间的映射。 (不支持)

seed可选(默认=无)

如果指定了 k 并且 k 是整数,则使用种子来初始化随机数生成器。使用无作为种子依赖于随机。seed() 行为:使用当前系统时间如果 k 为无或列表:种子参数被忽略

result_dtypenp.float32 或 np.float64,可选(默认=np.float64)

表示介数中心性分数的数据类型使用双自动切换实现“default”

返回

dfcudf.DataFrame 或 Dictionary 如果使用 NetworkX

GPU 数据帧包含三个大小为 E 的 cudf.Series:源的顶点标识符、目的地的顶点标识符以及相应的中介中心性值。请注意,生成的‘src’, ‘dst’ 列可能不是按升序排列的。

df[‘src’]cudf.Series

包含每条边源的顶点标识符

df[‘dst’]cudf.Series

包含每条边的目的地的顶点标识符

df[‘edge_betweenness_centrality’]cudf.Series

包含边的中介中心性

使用无向图时,‘src’ and ‘dst’ 仅包含 ‘src’ < ‘dst’ 的元素,这可能与 networkx 和用户的输入不同。即边 (1 -> 0) 被转换为 (0 -> 1) 但包含边 (1 -> 0) 的中介中心性。

例子

>>> gdf = cudf.read_csv(datasets_path / 'karate.csv', delimiter=' ',
...                     dtype=['int32', 'int32', 'float32'], header=None)
>>> G = cugraph.Graph()
>>> G.from_cudf_edgelist(gdf, source='0', destination='1')
>>> ebc = cugraph.edge_betweenness_centrality(G)

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cugraph.centrality.betweenness_centrality.edge_betweenness_centrality。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。