Arcana.Graph.CommunityDetector.Leiden (Arcana v1.3.3)
View SourceLeiden algorithm implementation for community detection.
Uses the Leidenfold library (Rust NIF) to detect communities in entity graphs. The Leiden algorithm is a refinement of the Louvain algorithm that guarantees well-connected communities.
Installation
Add leidenfold to your dependencies in mix.exs:
defp deps do
[
{:arcana, "~> 1.2"},
{:leidenfold, "~> 0.2"}
]
endPrecompiled binaries are available for macOS (Apple Silicon) and Linux (x86_64, ARM64).
Usage
detector = {Arcana.Graph.CommunityDetector.Leiden, resolution: 1.0}
{:ok, communities} = CommunityDetector.detect(detector, entities, relationships)Options
:resolution- Controls community granularity (default: 1.0) Higher values produce smaller communities:objective- Quality function to optimize (default: :cpm) Options: :cpm, :modularity, :rber, :rbc, :significance, :surprise:iterations- Number of optimization iterations (default: 2):seed- Random seed for reproducibility (default: 0 = random):min_size- Minimum community size to include (default: 1) Set to 2 to exclude singleton communities:max_level- Maximum hierarchy levels to generate (default: 1) Higher levels contain coarser communities built by aggregating lower levels