spectral_graph_forge#
- spectral_graph_forge(G, alpha, transformation='identity', seed=None)[source]#
返回一个具有与
G
相似谱的随机简单图这个算法称为谱图锻造(Spectral Graph Forge,SGF),它计算给定图邻接矩阵的特征向量,对其进行过滤,并构建一个具有相似特征结构的随机图。SGF已被证明在合成现实社交网络方面特别有用,它还可以用于匿名化敏感图数据。
- Parameters:
- GGraph
输入图
- alphafloat
表示要考虑的
G
的特征向量的百分比,取值范围为 [0,1]。- transformationstring, 可选
表示预期的矩阵线性变换,可能的值为 ‘identity’ 和 ‘modularity’
- seedinteger, random_state, 或 None(默认)
numpy 随机数生成状态的指示器。 参见 Randomness 。
- Returns:
- HGraph
一个具有与输入图相似特征向量结构的图。
- Raises:
- NetworkXError
如果 transformation 的值不是 ‘identity’ 或 ‘modularity’
Notes
谱图锻造(SGF)生成一个与给定图的全局属性相似的随机简单图。它利用由 alpha 精度参数驱动的相关邻接矩阵的低秩近似。SGF 保留输入图的节点数量及其顺序。这样,输出图的节点与输入图的属性相似,并且可以直接映射属性。
它考虑图的邻接矩阵,这些矩阵可以选择性地转换为其他对称实矩阵(目前变换选项包括 identity 和 modularity)。modularity 变换,在新曼的模块度矩阵意义上,允许关注与图的社区结构相关的属性。
SGF 应用一个固定秩的低秩近似,该秩是从输入图邻接矩阵维度的比率 alpha 计算得出的。这一步对输入特征向量进行过滤,类似于电信中常见的低通滤波。
过滤后的值(截断后)作为输入用于伯努利采样,以构建随机邻接矩阵。
References
Examples
>>> G = nx.karate_club_graph() >>> H = nx.spectral_graph_forge(G, 0.3)