cdlib.algorithms.hierarchical_link_community_full¶
- cdlib.algorithms.hierarchical_link_community_full(g_original: object, weight='weight', simthr=None, hcmethod='single', min_edges=None, verbose=False) EdgeClustering¶
HLC (hierarchical link clustering) is a method to classify links into topologically related groups. The algorithm uses a similarity between links to build a dendrogram where each leaf is a link from the original network and branches represent link communities. At each level of the link dendrogram is calculated the partition density function, based on link density inside communities, to pick the best level to cut. This implementation follows exactly the algorithm described in Ahn et al and uses numpy/scipy to improve the clustering computation (It is faster and consumes less memory.
Supported Graph Types
Undirected
Directed
Weighted
Yes
No
Yes
- Parameters:
g_original – a networkx/igraph object
weight – None for unweighted networks, jaccard approximation is used. When defined with a string, edge attribute name (usually ‘weight’) to be used as weight and Tanimoto approximation is used.
simthr – None by default. If set to float, all values less than threshold are set to 0 in similarity matrix (it could reduce memory usage).
hcmethod – Linkage method used in hierarchical clustering, ‘single’ by default. See scipy.cluster.hierarchy.linkage to get full method list.
min_edges – None by default. If set to float, minimum number of edges that a community must contain to be kept in the clustering
verbose – If True, write intermediary steps to disk.
- Returns:
EdgeClustering object
- Example:
>>> from cdlib import algorithms >>> import networkx as nx >>> G = nx.karate_club_graph() >>> com = algorithms.hierarchical_link_community_full(G)
- References:
Ahn, Yong-Yeol, James P. Bagrow, and Sune Lehmann. Link communities reveal multiscale complexity in networks. nature 466.7307 (2010): 761.