Python 3.x 如何在Python中使用Katz索引查找顶点对之间的相似性?

Python 3.x 如何在Python中使用Katz索引查找顶点对之间的相似性?,python-3.x,networkx,Python 3.x,Networkx,我正在尝试使用Katz索引查找节点对之间的相似性分数。 例如,如果我有edge(V1,V2),他们的katz相似性分数是多少?目前我已尝试使用networkx函数,如下所示: import networkx as mx G=mx.karate_club_graph() katz =mx.katz.katz_centrality(G. alpha=0.01, beta=1) 但我得到了每个节点的中心性。如何为每对节点获得相同的值?提前感谢此功能在networkx中不可用。另一种方法是使用公式计

我正在尝试使用Katz索引查找节点对之间的相似性分数。 例如,如果我有edge(V1,V2),他们的katz相似性分数是多少?目前我已尝试使用networkx函数,如下所示:

import networkx as mx
G=mx.karate_club_graph()
 katz =mx.katz.katz_centrality(G. alpha=0.01, beta=1)

但我得到了每个节点的中心性。如何为每对节点获得相同的值?提前感谢

此功能在networkx中不可用。另一种方法是使用公式计算该分数。有关详细信息,请参阅本文件:

示例代码如下所示:

import networkx as nx
import numpy as np
from numpy.linalg import inv

G = nx.karate_club_graph()

#Calculate highest eigenvector
L = nx.normalized_laplacian_matrix(G)
e = np.linalg.eigvals(L.A)
print("Largest eigenvalue:", max(e))
beta = 1/max(e)
I = np.identity(len(G.nodes)) #create identity matrix

#Katz score
inv(I - nx.to_numpy_array(G)*beta) - I