【发布时间】:2021-01-08 21:42:51
【问题描述】:
我一直在寻找可以使用重叠顶点创建子图的包。
根据我对Networkx 和metis 的理解,可以将图划分为两个或多个部分。但我找不到如何划分为具有重叠节点的子图。
关于支持重叠顶点分区的库的建议将非常有帮助。
编辑:我尝试了 CDLIB 中的 angel 算法将原始图划分为具有 4 个重叠节点的子图。
import networkx as nx
from cdlib import algorithms
if __name__ == '__main__':
g = nx.karate_club_graph()
coms = algorithms.angel(g, threshold=4, min_community_size=10)
print(coms.method_name)
print(coms.method_parameters) # Clustering parameters)
print(coms.communities)
print(coms.overlap)
print(coms.node_coverage)
输出:
ANGEL
{'threshold': 4, 'min_community_size': 10}
[[14, 15, 18, 20, 22, 23, 27, 29, 30, 31, 32, 8], [1, 12, 13, 17, 19, 2, 21, 3, 7, 8], [14, 15, 18, 2, 20, 22, 30, 31, 33, 8]]
True
0.6470588235294118
从返回的社区中,我了解到 1 和 3 有 4 个节点的重叠,但 2 和 3 或 1 和 3 没有 4 个节点的重叠大小。
我不清楚如何指定重叠阈值(4 个重叠)
这里algorithms. angel(g, threshold=4, min_community_size=10)。我尝试在这里设置 threshold=4 来定义 4 个节点的重叠大小。但是,来自documentation available for angel
:param threshold:在[0,1]中合并阈值。
我不确定如何将 4 个重叠转换为必须在边界 [0, 1] 之间设置的值。建议会很有帮助。
【问题讨论】:
-
您检查过GitHub repo 中的
threshold > 1吗?
标签: graph networkx partitioning metis