networkx.linalg.bethehessianmatrix.bethe_hessian_matrix¶
-
bethe_hessian_matrix
(G, r=None, nodelist=None)[source]¶ Returns the Bethe Hessian matrix of G.
The Bethe Hessian is a family of matrices parametrized by r, defined as H(r) = (r^2 - 1) I - r A + D where A is the adjacency matrix, D is the diagonal matrix of node degrees, and I is the identify matrix. It is equal to the graph laplacian when the regularizer r = 1.
The default choice of regularizer should be the ratio [2]
\[r_m = \left(\sum k_i \right)^{-1}\left(\sum k_i^2 \right) - 1\]- Parameters
G (Graph) – A NetworkX graph
r (float) – Regularizer parameter
nodelist (list, optional) – The rows and columns are ordered according to the nodes in nodelist. If nodelist is None, then the ordering is produced by G.nodes().
- Returns
H – The Bethe Hessian matrix of G, with paramter r.
- Return type
Numpy matrix
Examples
>>> import networkx as nx >>> k =[3, 2, 2, 1, 0] >>> G = nx.havel_hakimi_graph(k) >>> H = nx.modularity_matrix(G)
See also
bethe_hessian_spectrum()
,to_numpy_matrix()
,adjacency_matrix()
,laplacian_matrix()
References
- 1
A. Saade, F. Krzakala and L. Zdeborová “Spectral clustering of graphs with the bethe hessian”, Advances in Neural Information Processing Systems. 2014.
- 2
C. M. Lee, E. Levina “Estimating the number of communities in networks by spectral methods” arXiv:1507.00827, 2015.