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:
- Raises:
NetworkXError – 如果transformation参数的值不是'identity'或'modularity'
备注
谱图生成器(SGF)可生成与给定图全局属性相似的随机简单图。它利用由alpha精度参数驱动的邻接矩阵低秩近似方法。SGF会保留输入图的节点数量及其顺序。通过这种方式,输出图的节点能保持输入图的特性,属性也可以直接映射。
它考虑图的邻接矩阵,这些矩阵可以选择性地转换为其他对称实数矩阵(当前支持的转换选项包括identity和modularity)。其中modularity转换基于Newman的模块度矩阵概念,能够聚焦于图中与社区结构相关的特性。
SGF采用一种低秩近似方法,其固定秩值是根据输入图邻接矩阵维度的alpha比例计算得出。此步骤对输入特征向量执行过滤操作,类似于电信领域中常见的低通滤波处理。
过滤后的值(经过截断处理后)将作为伯努利采样的输入,用于构建随机邻接矩阵。
参考文献
示例
>>> G = nx.karate_club_graph() >>> H = nx.spectral_graph_forge(G, 0.3) >>>