cdlib.algorithms.markov_clustering

cdlib.algorithms.markov_clustering(g_original: object, expansion: int = 2, inflation: int = 2, loop_value: int = 1, iterations: int = 100, pruning_threshold: float = 0.001, pruning_frequency: int = 1, convergence_check_frequency: int = 1) NodeClustering

马尔可夫聚类算法(MCL)基于图中(随机)流的模拟。 MCL算法通过数学自举程序在图中找到聚类结构。该过程确定性地计算(随机游走的概率)通过图,并使用两个操作符将一组概率转换为另一组。它使用随机矩阵(也称为马尔可夫矩阵)的语言来实现这一点,这些矩阵捕捉了图上随机游走的数学概念。 MCL算法通过交替使用称为扩展和膨胀的两个操作符来模拟图中的随机游走。

支持的图表类型

无向

有向

加权

是的

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

  • expansion – 集群扩展因子

  • inflation – 集群膨胀因子

  • loop_value – 自环的初始值

  • iterations – 最大迭代次数 (如果达到收敛,实际迭代次数将少于该值)

  • pruning_threshold – 低于此阈值的矩阵元素将被设置为0

  • pruning_frequency – 每‘pruning_frequency’次迭代执行一次剪枝。

  • convergence_check_frequency – 每进行convergence_check_frequency次迭代时执行收敛检查

Returns:

节点聚类对象

Example:

>>> from cdlib import algorithms
>>> import networkx as nx
>>> G = nx.karate_club_graph()
>>> coms = algorithms.markov_clustering(G)
References:

Enright, Anton J., Stijn Van Dongen, 和 Christos A. Ouzounis. 一种用于大规模检测蛋白质家族的高效算法。 核酸研究 30.7 (2002): 1575-1584.