Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 21 additions & 17 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ Branch detection
----------------

The hdbscan package supports a branch-detection post-processing step
by `Bot et al. <https://arxiv.org/abs/2311.15887>`_. Cluster shapes,
by `Bot et al. <https://peerj.com/articles/cs-2792/>`_. Cluster shapes,
such as branching structures, can reveal interesting patterns
that are not expressed in density-based cluster hierarchies. The
BranchDetector class mimics the HDBSCAN API and can be used to
Expand All @@ -192,10 +192,10 @@ Example usage:


Based on the paper:
D. M. Bot, J. Peeters, J. Liesenborgs and J. Aerts
*"FLASC: A Flare-Sensitive Clustering Algorithm: Extending HDBSCAN\* for Detecting Branches in Clusters"*
Arxiv 2311.15887, 2023.

D.M. Bot, J. Peeters, J. Liesenborgs and J. Aerts
*FLASC: a flare-sensitive clustering algorithm.*
PeerJ Computer Science, Vol 11, April 2025, e2792.
https://doi.org/10.7717/peerj-cs.2792/.

----------
Installing
Expand Down Expand Up @@ -334,22 +334,26 @@ To reference the high performance algorithm developed in this library please cit
organization={IEEE}
}

If you used the branch-detection functionality in this codebase in a scientific publication and which to cite it, please use the `Arxiv preprint <https://arxiv.org/abs/2311.15887>`_:
If you used the branch-detection functionality in this library please cite our `PeerJ paper <https://peerj.com/articles/cs-2792/>`_:

D. M. Bot, J. Peeters, J. Liesenborgs and J. Aerts
*"FLASC: A Flare-Sensitive Clustering Algorithm: Extending HDBSCAN\* for Detecting Branches in Clusters"*
Arxiv 2311.15887, 2023.
Bot DM, Peeters J, Liesenborgs J, Aerts J.
*FLASC: a flare-sensitive clustering algorithm.*
In: PeerJ Computer Science, Volume 11, e2792, 2025.
https://doi.org/10.7717/peerj-cs.2792

.. code:: bibtex

@misc{bot2023flasc,
title={FLASC: A Flare-Sensitive Clustering Algorithm: Extending HDBSCAN* for Detecting Branches in Clusters},
author={D. M. Bot and J. Peeters and J. Liesenborgs and J. Aerts},
year={2023},
eprint={2311.15887},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2311.15887},
@article{bot2025flasc,
title = {{FLASC: a flare-sensitive clustering algorithm}},
author = {Bot, Dani{\"{e}}l M. and Peeters, Jannes and Liesenborgs, Jori and Aerts, Jan},
year = {2025},
month = {apr},
journal = {PeerJ Comput. Sci.},
volume = {11},
pages = {e2792},
issn = {2376-5992},
doi = {10.7717/peerj-cs.2792},
url = {https://peerj.com/articles/cs-2792},
}

---------
Expand Down
26 changes: 25 additions & 1 deletion docs/how_to_detect_branches.rst
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ tell us how those clusters combine into a larger shape.

This is where the branch detection post-processing step comes into play.
The functionality is described in detail by `Bot et
al <https://arxiv.org/abs/2311.15887>`__ (please reference this paper
al <https://peerj.com/articles/cs-2792/>`__ (please cite this paper
when using this functionality). It operates on the detected clusters and
extracts a branch-hierarchy analogous to HDBSCAN\*’s condensed cluster
hierarchy. The process is very similar to HDBSCAN\* clustering, except
Expand Down Expand Up @@ -388,3 +388,27 @@ branches!!

.. image:: images/how_to_detect_branches_25_0.png


Citing
------

If you used the branch-detection functionality in this library please cite our `PeerJ paper <https://peerj.com/articles/cs-2792/>`_:

Bot DM, Peeters J, Liesenborgs J, Aerts J. 2025. FLASC: a flare-sensitive
clustering algorithm. PeerJ Computer Science 11:e2792
https://doi.org/10.7717/peerj-cs.2792

.. code:: bibtex

@article{bot2025flasc,
title = {{FLASC: a flare-sensitive clustering algorithm}},
author = {Bot, Dani{\"{e}}l M. and Peeters, Jannes and Liesenborgs, Jori and Aerts, Jan},
year = {2025},
month = {apr},
journal = {PeerJ Comput. Sci.},
volume = {11},
pages = {e2792},
issn = {2376-5992},
doi = {10.7717/peerj-cs.2792},
url = {https://peerj.com/articles/cs-2792},
}
12 changes: 6 additions & 6 deletions hdbscan/branches.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,9 +179,9 @@ def detect_branches_in_clusters(

References
----------
.. [1] Bot, D. M., Peeters, J., Liesenborgs J., & Aerts, J. (2023, November).
FLASC: A Flare-Sensitive Clustering Algorithm: Extending HDBSCAN* for
Detecting Branches in Clusters. arXiv:2311.15887
.. [1] Bot D.M., Peeters J., Liesenborgs J., Aerts J. 2025. FLASC: a
flare-sensitive clustering algorithm. PeerJ Computer Science 11:e2792
https://doi.org/10.7717/peerj-cs.2792.
"""
# Check clusterer state
if clusterer._min_spanning_tree is None:
Expand Down Expand Up @@ -872,9 +872,9 @@ class BranchDetector(BaseEstimator, ClusterMixin):

References
----------
.. [1] Bot, D. M., Peeters, J., Liesenborgs J., & Aerts, J. (2023, November).
FLASC: A Flare-Sensitive Clustering Algorithm: Extending HDBSCAN* for
Detecting Branches in Clusters. arXiv:2311.15887
.. [1] Bot D.M., Peeters J., Liesenborgs J., Aerts J. 2025. FLASC: a
flare-sensitive clustering algorithm. PeerJ Computer Science 11:e2792
https://doi.org/10.7717/peerj-cs.2792.
"""

def __init__(
Expand Down