CDlib Logo
  • Overview
    • Goals
    • EU H2020
  • Installing CDlib
    • Optional Dependencies
      • PyPi package
      • Advanced
      • Optional Dependencies (Conda package)
  • Quick Start
    • Tutorial
    • FAQ
  • API Guide
    • Community Objects
      • Node Clustering
      • Fuzzy Node Clustering
      • Attributed Node Clustering
      • Biparite Node Clustering
      • Edge Clustering
      • Temporal Clustering
    • Static Community Discovery
      • Node Clustering
      • Edge Clustering
      • Ensemble Methods
    • Dynamic Community Discovery
      • Instant Optimal
      • Temporal Trade-Off
    • Community Events and LifeCycle
      • LifeCycle Object
      • Clustering with Explicit LifeCycle
      • Clustering without Explicit LifeCycle
      • Analyzing Events and Flows
      • Visualizing Events and Flows
      • Validating Flows
    • Evaluation and Benchmarking
      • Internal Evaluation: Fitness scores
      • External Evaluation: Partition Comparisons
      • Synthetic Benchmarks
      • Networks With Annotated Communities
    • Validate CD Algorithms Rankings
      • Ranking by Fitness Scores
      • Ranking by Clustering Similarity
    • Visual Analytics
      • Network Visualization
      • Analytics plots
      • Dynamic Community Events plots
    • Input-Output
      • Community I/O
      • Community Events I/O
    • Utilities
      • Graph Transformation
      • Identifier mapping
      • Global Seeding for Reproducibility
  • Bibliography
    • Algorithms
    • Evaluation measures
    • Researches using CDlib
CDlib
  • API Guide
  • Static Community Discovery
  • Edge Clustering
  • cdlib.algorithms.hierarchical_link_community_full
  • View page source

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.

Previous Next

© Copyright 2024, Giulio Rossetti.

Built with Sphinx using a theme provided by Read the Docs.