spectral_graph_forge#

spectral_graph_forge(G, alpha, transformation='identity', seed=None)[source]#

返回一个随机简单图,其谱类似于 G

该算法称为谱图生成(SGF),它计算给定图邻接矩阵的特征向量,对它们进行过滤,并构建一个具有相似特征结构的随机图。SGF 已被证明对于合成逼真的社交网络特别有用,也可用于匿名化图敏感数据。

参数:
G
alpha浮点数

表示考虑的 G 特征向量百分比的比例,取值范围为 [0,1]。

transformation字符串,可选

表示预期的矩阵线性变换,可能的值为 'identity' 和 'modularity'

seed整数,random_state 或 None(默认)

NumPy 随机数生成状态的指示器。请参阅 随机性

返回:
H

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

抛出:
NetworkXError

如果 transformation 的值与 'identity' 或 'modularity' 不同

注意

谱图生成(SGF)生成一个随机简单图,该图类似于给定图的全局属性。它利用由 alpha 精度参数驱动的相关邻接矩阵的低秩近似。SGF 保留输入图的节点数量及其顺序。这样,输出图的节点就类似于输入图的属性,并且可以直接映射属性。

它考虑图的邻接矩阵,这些矩阵可以选择转换为其他对称实矩阵(当前转换选项包括 identitymodularity)。根据 Newman 的模块度矩阵定义的 modularity 转换,可以侧重于图的社区结构相关属性。

SGF 应用一个低秩近似,其固定秩根据输入图邻接矩阵维度的比例 alpha 计算。此步骤对输入特征向量执行过滤,类似于电信中常见的低通滤波。

过滤后的值(截断后)用作伯努利采样法的输入,以构建随机邻接矩阵。

参考文献

示例

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