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 保留输入图的节点数量及其顺序。这样,输出图的节点就类似于输入图的属性,并且可以直接映射属性。
它考虑图的邻接矩阵,这些矩阵可以选择转换为其他对称实矩阵(当前转换选项包括 identity 和 modularity)。根据 Newman 的模块度矩阵定义的 modularity 转换,可以侧重于图的社区结构相关属性。
SGF 应用一个低秩近似,其固定秩根据输入图邻接矩阵维度的比例 alpha 计算。此步骤对输入特征向量执行过滤,类似于电信中常见的低通滤波。
过滤后的值(截断后)用作伯努利采样法的输入,以构建随机邻接矩阵。
参考文献
示例
>>> G = nx.karate_club_graph() >>> H = nx.spectral_graph_forge(G, 0.3) >>>