cdlib.benchmark.XMark

cdlib.benchmark.XMark(n: int = 2000, gamma: float = 3, beta: float = 2, m_cat: tuple = ('auto', 'auto'), theta: float = 0.3, mu: float = 0.5, avg_k: int = 10, min_com: int = 20, type_attr: str = 'categorical') [<class 'object'>, <class 'object'>]

返回带有注释的XMark基准图和植入的社区。

Parameters:
  • n – 创建的图中的节点数。

  • gamma – 创建图的度分布的幂律指数。此值必须严格大于一。

  • beta – 创建图中社区大小分布的幂律指数。此值必须严格大于一。

  • m_cat – 如果属性类型是分类的,它是属性域中的值的数量。

  • m_cont – 如果属性类型是连续的,它是分布中的峰值数量(至少是双峰分布,即 m_cont=2)。

  • theta – 如果属性类型是分类的,它指定了集群内的噪声百分比。

  • sigma – 如果属性类型是连续的,它是标准差。

  • mu – 每个节点与社区内部边的比例。该值必须在区间 [0, 1] 内。

  • avg_k – 创建图中节点的期望平均度数。此值必须在区间 [0, n] 内。必须指定此参数或 min_degree 中的一个,否则会引发 NetworkXError。

  • min_com – 图中社区的最小大小。如果未指定,则设置为 min_degree。

  • type_attr – 属性类型。它可以是“categorical”或“continuous”。

Returns:

一个networkx合成图,社区集合(NodeClustering对象)

Example:

>>> from cdlib.benchmark import XMark
>>> N = 2000
>>> gamma = 3
>>> beta = 2
>>> m_cat = ["auto", "auto"]
>>> theta = 0.3
>>> mu = 0.5
>>> avg_k = 10
>>> min_com = 20
>>> g, coms = XMark(n=N, gamma=gamma, beta=beta, mu=mu,
>>>                           m_cat=m_cat,
>>>                           theta=theta,
>>>                           avg_k=avg_k, min_com=min_com,
>>>                           type_attr="categorical")
References:

Salvatore Citraro 和 Giulio Rossetti。 “XMark: 节点属性社区发现算法的基准测试”,2021年(即将发布)

注意

参考实现:https://github.com/dsalvaz/XMark