ash_model.measures.s_eigenvector_centrality¶
- ash_model.measures.s_eigenvector_centrality(h, s, start=None, end=None, edges=True, max_iter=100, tol=1e-06, weight=None)[source]¶
Returns the eigenvector centrality of the nodes in the line graph of the hypergraph. If edges is True, the function computes the eigenvector centrality for hyperedges (the nodes of the line graph). If edges is False, it computes the eigenvector centrality for nodes by first converting the hypergraph to its dual.
- Parameters:
h (ASH) – the ASH instance
s (int) – minimum hyperedge overlap size for paths
start (int | None) – start time of the interval
end (int | None) – end time of the interval
edges (bool) – if True, compute for hyperedges; if False, compute for nodes
max_iter (int) – maximum number of iterations for the eigenvector centrality calculation
tol (float) – tolerance for convergence in the eigenvector centrality calculation
weight – edge attribute to use as weight
- Returns:
a dictionary mapping node IDs (or edge IDs if edges is True) to their eigenvector centrality values
- Return type:
Examples
>>> import numpy as np, networkx as nx >>> from ash_model.utils.networkx import from_networkx_maximal_cliques_list >>> Gs = [nx.barabasi_albert_graph(100, 3, seed=i) for i in range(10)] >>> rng = np.random.default_rng(42) >>> for G in Gs: ... for n in G.nodes(): ... G.nodes[n]['color'] = 'red' if rng.integers(0, 2) == 0 else 'blue' >>> h = from_networkx_maximal_cliques_list(Gs) >>> head3 = sorted(list(s_eigenvector_centrality(h, 1, start=0, end=0).items()))[:3] >>> [(k, float(v)) for k,v in head3] [('e1', 0.12621433668406887), ('e10', 0.1777592407633311), ('e100', 0.010063200782658498)]