google_matrix#
- google_matrix(G, alpha=0.85, personalization=None, nodelist=None, weight='weight', dangling=None)[source]#
返回图的 Google 矩阵。
- 参数:
- G图
一个 NetworkX 图。无向图将被转换为有向图,其中每条无向边对应两条有向边。
- alpha浮点数
阻尼系数。
- personalization: 字典, 可选
“个性化向量”,包含一个字典,其键是图节点的某个子集,值是对应的个性化值。至少一个个性化值必须非零。如果未指定,节点的个性化值将为零。默认使用均匀分布。
- nodelist列表, 可选
行和列的顺序按照 nodelist 中的节点排列。如果 nodelist 为 None,则顺序由 G.nodes() 生成。
- weight键, 可选
用作权重的边数据键。如果为 None,权重将设为 1。
- dangling: 字典, 可选
分配给任何“悬空”节点(即没有出边的节点)的出边。字典的键是出边指向的节点,字典的值是该出边的权重。默认情况下,悬空节点根据个性化向量(如果未指定则为均匀分布)被赋予出边。必须选择此项以生成不可约的转移矩阵(参见下面的说明)。通常可以将 dangling 字典设置为与 personalization 字典相同。
- 返回:
- A二维 NumPy ndarray
图的 Google 矩阵
另请参阅
说明
返回的数组表示 PageRank 中使用的马尔可夫链的转移矩阵。为了使 PageRank 收敛到唯一解(即马尔可夫链中的唯一平稳分布),转移矩阵必须是不可约的。换句话说,图中任意一对节点之间都必须存在路径,否则可能存在“排名陷阱”。
此实现适用于 Multi(Di)Graphs。对于多重图,两个节点之间的权重设置为它们之间所有边权重的总和。
其他后端实现此函数
graphblas : 支持 OpenMP 的稀疏线性代数后端。