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 保留输入图的节点数量及其顺序。这样,输出图的节点与输入图的属性相似,并且可以直接映射属性。

它考虑图的邻接矩阵,这些矩阵可以选择性地转换为其他对称实矩阵(目前变换选项包括 identitymodularity)。modularity 变换,在新曼的模块度矩阵意义上,允许关注与图的社区结构相关的属性。

SGF 应用一个固定秩的低秩近似,该秩是从输入图邻接矩阵维度的比率 alpha 计算得出的。这一步对输入特征向量进行过滤,类似于电信中常见的低通滤波。

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

References

Examples

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