cdlib.algorithms.lemon

cdlib.algorithms.lemon(g_original: object, seeds: list, min_com_size: int = 20, max_com_size: int = 50, expand_step: int = 6, subspace_dim: int = 3, walk_steps: int = 3, biased: bool = False) NodeClustering

Lemon 是一种基于局部扩展的大规模重叠社区检测方法,通过最小一范数实现。

该算法采用局部扩展方法,以便从一些示例种子成员中识别社区成员。 该算法通过在局部谱的跨度中寻找一个稀疏向量来找到社区,使得种子在其支持中。LEMON可以在最先进的提案中实现最高的检测精度。运行时间取决于社区的大小,而不是整个图的大小。

支持的图表类型

无向

有向

加权

是的

Parameters:
  • g_original – 一个 networkx/igraph 对象

  • seeds – 节点列表

  • min_com_size – 网络中单个社区的最小大小,默认为20

  • max_com_size – 网络中单个社区的最大大小,默认值为50

  • expand_step – 扩展过程中种子集增加的步长,默认为6

  • subspace_dim – 子空间的维度;选择较大的维度是不理想的,因为它会增加生成局部光谱的计算成本,默认值为3

  • walk_steps – 随机游走的步数,默认为3

  • biased – 布尔值;如果从种子节点开始的随机游走,则设置为True,默认为False

Returns:

节点聚类对象

Example:

>>> from cdlib import algorithms
>>> import networkx as nx
>>> G = nx.karate_club_graph()
>>> seeds = ["$0$", "$2$", "$3$"]
>>> coms = algorithms.lemon(G, seeds, min_com_size=2, max_com_size=5)
References:

李逸轩, 何坤, David Bindel, John Hopcroft 揭示大型网络中的小社区结构:一种局部谱方法。 第24届国际万维网会议论文集。国际万维网会议指导委员会, 2015.

注意

参考实现:https://github.com/YixuanLi/LEMON