graphscope.nx.generators.spectral_graph_forge.spectral_graph_forge

graphscope.nx.generators.spectral_graph_forge.spectral_graph_forge(G, alpha, transformation='identity', seed=None)[源代码]

返回一个随机简单图,其频谱与G相似

该算法名为Spectral Graph Forge (SGF),通过计算给定图邻接矩阵的特征向量,对其进行滤波处理,并构建具有相似特征结构的随机图。SGF已被证明在合成逼真社交网络方面特别有效,同时也可用于图敏感数据的匿名化处理。

Parameters:
  • G () –

  • alpha (float) – 表示要考虑的G特征向量比例的比率,取值范围为[0,1]。

  • transformation (string, optional) – 表示预期的矩阵线性变换,可能的值为'identity'和'modularity'

  • seed (integer, random_state, or None (default)) - 表示numpy随机数生成状态的指示器。 参见随机性

Returns:

H – 一个与输入图具有相似特征向量结构的图。

Return type:

Graph

Raises:

NetworkXError – 如果transformation参数的值不是'identity'或'modularity'

备注

谱图生成器(SGF)可生成与给定图全局属性相似的随机简单图。它利用由alpha精度参数驱动的邻接矩阵低秩近似方法。SGF会保留输入图的节点数量及其顺序。通过这种方式,输出图的节点能保持输入图的特性,属性也可以直接映射。

它考虑图的邻接矩阵,这些矩阵可以选择性地转换为其他对称实数矩阵(当前支持的转换选项包括identitymodularity)。其中modularity转换基于Newman的模块度矩阵概念,能够聚焦于图中与社区结构相关的特性。

SGF采用一种低秩近似方法,其固定秩值是根据输入图邻接矩阵维度的alpha比例计算得出。此步骤对输入特征向量执行过滤操作,类似于电信领域中常见的低通滤波处理。

过滤后的值(经过截断处理后)将作为伯努利采样的输入,用于构建随机邻接矩阵。

参考文献

示例

>>> G = nx.karate_club_graph()
>>> H = nx.spectral_graph_forge(G, 0.3)
>>>