Source code for netcenlib.algorithms.leverage_centrality

import networkx as nx


[docs] def leverage_centrality(network: nx.Graph) -> dict[str, float]: """ Compute the Leverage Centrality for each node in the graph G. Ref: https://www.centiserver.org/centrality/Leverage_Centrality/ :param network: NetworkX graph :return: Dictionary of nodes with computed centrality as the value """ centrality = {} nodes_degree = dict(network.degree()) for node in network.nodes(): neighbors = list(nx.neighbors(network, node)) node_centrality = 0 if neighbors: leverage_scores = [ (nodes_degree[node] - nodes_degree[nb]) / (nodes_degree[node] + nodes_degree[nb]) for nb in neighbors ] node_centrality = sum(leverage_scores) / len(leverage_scores) centrality[node] = node_centrality return centrality