DynBenchmark

Customizable Ground Truths to Benchmark Community Detection and Tracking in Temporal Networks

Sankey diagram showing community evolution

DynBenchmark is a comprehensive toolkit for generating customizable ground truths to benchmark community detection and tracking algorithms in temporal networks.

Key Features

Ground Truth Generation
Create customizable evolving communities that can grow, shrink, merge, split, appear, or disappear.
Comprehensive Metrics
Analyze networks and communities with rich metrics for structures and evolution patterns.
Visualization Tools
Understand community dynamics with intuitive visualizations and interactive diagrams.
Algorithm Evaluation
Compare detection algorithms against ground truth with specialized metrics.

For detailed information on each feature, see our tutorials.

Quick Start

# Install the package
pip install dyn-benchmark[pretty]

# Generate a customized benchmark
from dyn.benchmark.generator.groundtruth_generator import GroundtruthGenerator

# Create a generator with specific parameters
generator = GroundtruthGenerator(seed=42)

# Generate the benchmark with evolving communities
groundtruth = generator.generate()

# Visualize community evolution with Sankey diagram
from dyn.drawing.sankey_drawing import plot_sankey
from dyn.core.communities import Membership

membership = Membership.from_tcommlist(groundtruth.tcommlist)
plot_sankey(membership.community_graph)

Citation

If you use DynBenchmark in your research, please cite:

Brisson, L., Bothorel, C., & Duminy, N. (2025). DynBenchmark: Customizable Ground
Truths to Benchmark Community Detection and Tracking in Temporal Networks, France's International Conference on Complex Systems (FRCCS 2025), Bordeaux, France

BibTeX:

@inproceedings{Brisson2025DynBenchmark,
   title={DynBenchmark: Customizable Ground Truths to Benchmark Community Detection and Tracking in Temporal Networks},
   author={Brisson, Laurent and Bothorel, C{\'e}cile and Duminy, Nicolas},
   booktitle={France's International Conference on Complex Systems (FRCCS 2025)},
   year={2025}
}

Contributing

This package is growing continuously and contributions are welcomed. Contributions can come in the form of new features, bug fixes, documentation improvements or any combination thereof.

If you want to contribute to this package, please read the Contributing guidelines. If you have any new ideas or have found bugs, feel free to create an issue. Finally, any contribution must be proposed for integration as a Merge Request.

Please visit our Gitlab for more details.

License

This software is licensed under the European Union Public Licence (EUPL) v1.2. For more information see this.