社区#

用于计算和衡量社区结构的函数。

可以通过使用 networkx.community 访问 community 子包,然后将函数作为 community 的属性访问。例如

>>> import networkx as nx
>>> G = nx.barbell_graph(5, 1)
>>> communities_generator = nx.community.girvan_newman(G)
>>> top_level_communities = next(communities_generator)
>>> next_level_communities = next(communities_generator)
>>> sorted(map(sorted, next_level_communities))
[[0, 1, 2, 3, 4], [5], [6, 7, 8, 9, 10]]

二分#

用于计算 Kernighan–Lin 二分算法的函数。

kernighan_lin_bisection(G[, partition, ...])

使用 Kernighan–Lin 算法将图划分为两个块。

分裂社区#

edge_betweenness_partition(G, number_of_sets, *)

通过迭代移除具有最高边介数的边来创建的划分。

edge_current_flow_betweenness_partition(G, ...)

通过移除具有最高边电流介数的边来创建的划分。

K-团#

k_clique_communities(G, k[, cliques])

使用渗流方法在图中查找 k-团社区。

基于模块度的社区#

用于检测基于模块度的社区的函数。

greedy_modularity_communities(G[, weight, ...])

使用贪婪模块度最大化在图 G 中查找社区。

naive_greedy_modularity_communities(G[, ...])

使用贪婪模块度最大化在图 G 中查找社区。

树划分#

Lukes 算法用于精确最优加权树划分。

lukes_partitioning(G, max_size[, ...])

使用 Lukes 算法对加权树进行最优划分。

标签传播#

标签传播社区检测算法。

asyn_lpa_communities(G[, weight, seed])

返回由异步标签传播算法检测到的图 G 中的社区。

label_propagation_communities(G)

生成由标签传播确定的社区集

fast_label_propagation_communities(G, *[, ...])

返回由快速标签传播算法检测到的图 G 中的社区。

Louvain 社区检测#

基于 Louvain 社区检测算法检测社区的函数

louvain_communities(G[, weight, resolution, ...])

使用 Louvain 社区检测算法找到图的最佳划分。

louvain_partitions(G[, weight, resolution, ...])

生成 Louvain 社区检测算法每个级别的划分

流体社区#

用于社区检测的异步流体社区算法。

asyn_fluidc(G, k[, max_iter, seed])

返回由流体社区算法检测到的图 G 中的社区。

衡量划分#

用于衡量划分(为社区)质量的函数。

modularity(G, communities[, weight, resolution])

返回图给定划分的模块度。

partition_quality(G, partition)

返回图 G 的一个划分的覆盖率和性能。

通过中心性度量进行划分#

用于计算基于中心性概念的社区的函数。

girvan_newman(G[, most_valuable_edge])

使用 Girvan–Newman 方法在图中查找社区。

验证划分#

用于社区查找算法的辅助函数。

is_partition(G, communities)

如果 communities 是图 G 节点的划分,则返回 True