pagerank#

返回图中节点的 PageRank 值。

PageRank 根据传入链接的结构计算图 G 中节点的排名。它最初被设计为一种对网页进行排名的算法。

参数:
G

一个 NetworkX 图。无向图将被转换为有向图,其中每条无向边对应两条有向边。

alphafloat,可选

PageRank 的阻尼参数,默认为 0.85。

personalization: dict,可选

“个性化向量”,由一个字典组成,其中键是图节点的一个子集,值是每个节点的个性化值。至少一个个性化值必须非零。如果未指定,节点的个性化值将为零。默认情况下使用均匀分布。

max_iter整数,可选

幂法特征值求解器的最大迭代次数。

tolfloat,可选

用于检查幂法求解器收敛的误差容限。当误差达到 len(G) * tol 时,迭代将停止。

nstart字典,可选

每个节点 PageRank 迭代的起始值。

weight键,可选

用作权重的边数据键。如果为 None,则权重设置为 1。

dangling: dict,可选

分配给任何“悬空”节点(即没有出边的节点)的出边。字典的键是出边指向的节点,字典的值是该出边的权重。默认情况下,根据个性化向量(如果未指定则为均匀分布)为悬空节点分配出边。必须选择此项以产生不可约的转移矩阵(参见 google_matrix 下的注释)。通常,dangling 字典可以与 personalization 字典相同。

返回:
pagerank字典

节点的 PageRank 值字典

抛出:
PowerIterationFailedConvergence

如果在幂法迭代指定的迭代次数内算法未能收敛到指定的容差。

另见

google_matrix

注释

特征向量的计算通过幂法完成,不保证收敛。当误差容限达到 len(G) * tol 时,迭代将停止。如果迭代次数超过 max_iter,则会抛出 networkx.exception.PowerIterationFailedConvergence 异常。

PageRank 算法是为有向图设计的,但此算法不检查输入图是否为有向图,它将通过将无向图中的每条边转换为两条有向边来在无向图上执行。

参考文献

[1]

A. Langville 和 C. Meyer,“A survey of eigenvector methods of web information retrieval.” http://citeseer.ist.psu.edu/713792.html

[2]

Page, Lawrence; Brin, Sergey; Motwani, Rajeev 和 Winograd, Terry, The PageRank citation ranking: Bringing order to the Web. 1999 http://dbpubs.stanford.edu:8090/pub/showDoc.Fulltext?lang=en&doc=1999-66&format=pdf

示例

>>> G = nx.DiGraph(nx.path_graph(4))
>>> pr = nx.pagerank(G, alpha=0.9)
----

其他后端实现了此函数

cugraphGPU 加速后端。

dangling 参数不受支持,但会检查其有效性。

附加参数
dtypedtype 或 None,可选

算法中用于边权重的数据类型(np.float32、np.float64 或 None)。如果为 None,则 dtype 由边值确定。

graphblas : 启用 OpenMP 的稀疏线性代数后端。