Communities#

计算和测量社区结构的函数。

可以通过使用 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]]

Bipartitions#

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

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

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

Divisive Communities#

edge_betweenness_partition(G, number_of_sets, *)

由迭代移除具有最高边介数的边创建的分区。

edge_current_flow_betweenness_partition(G, ...)

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

K-Clique#

k_clique_communities(G, k[, cliques])

使用渗透方法在图中寻找k-团社区。

Modularity-based communities#

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

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

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

naive_greedy_modularity_communities(G[, ...])

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

Tree partitioning#

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

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

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

Label propagation#

标签传播社区检测算法。

asyn_lpa_communities(G[, weight, seed])

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

label_propagation_communities(G)

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

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

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

Louvain Community Detection#

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

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

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

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

生成Louvain社区检测算法每一层的分区

Fluid Communities#

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

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

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

Measuring partitions#

用于评估社区划分质量的函数。

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

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

partition_quality(G, partition)

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

Partitions via centrality measures#

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

girvan_newman(G[, most_valuable_edge])

使用Girvan-Newman方法在图中寻找社区。

Validating partitions#

社区发现算法的辅助函数。

is_partition(G, communities)

返回 True 如果 communities 是图 G 的节点的一个划分。