有向图中的特征向量

Eigenvector in directed graph

我想使用 igraph 包测量 R 中 262000 个节点和 1M 条边的有向图的特征向量中心性。当我 运行 命令时我得到这个错误:

> ev<-evcent(amazon,directed=TRUE)

Error in .Call("R_igraph_eigenvector_centrality", graph, directed, scale, : At arpack.c:1174 : ARPACK error, Maximum number of iterations reached De plus : Warning message: In .Call("R_igraph_eigenvector_centrality", graph, directed, scale, : At arpack.c:776 :ARPACK solver failed to converge (1001 iterations, 0/1 eigenvectors converged)

我不知道这个错误是什么意思???

错误的意思是:Maximum number of iterations reached

您可以增加最大迭代次数。这是一个可重现的例子:

先做个图:

> g <- make_ring(1000, directed=FALSE)

然后将默认迭代次数设置为一个小数:

> arpack_defaults$maxiter = 10

将其传递给 eigen_centrality 并得到您的错误:

> e = eigen_centrality(g, options=arpack_defaults)
Error in .Call("R_igraph_eigenvector_centrality", graph, directed, scale,  : 
  At arpack.c:944 : ARPACK error, Maximum number of iterations reached
In addition: Warning message:
In .Call("R_igraph_eigenvector_centrality", graph, directed, scale,  :
  At arpack.c:776 :ARPACK solver failed to converge (11 iterations, 0/1 eigenvectors converged)

所以让我们尝试更多的迭代:

> arpack_defaults$maxiter = 1000

看看是否可行:

> e = eigen_centrality(g, options=arpack_defaults)

没有错误!

我不知道您的图形需要多少次迭代,或者需要多长时间。继续添加零,直到它收敛并且 returns 正确,或者你因为花费的时间太长而放弃。