Fast Multicore HDBSCAN
The fast_hdbscan library provides a simple implementation of the HDBSCAN clustering algorithm designed specifically for high performance on multicore machine with low dimensional data (2D to about 20D). The algorithm runs in parallel and can make effective use of as many cores as you wish to throw at a problem. It is thus ideal for large SMP systems, and even modern multicore laptops.
This library provides a re-implementation of a subset of the HDBSCAN algorithm that is compatible with the hdbscan library for data that is Euclidean and low dimensional. The primary advantages of this library over the standard hdbscan library are:
this library can easily use all available cores to speed up computation;
this library has much faster implementations of tree condensing and cluster extraction;
this library is much simpler and more approachable for extending or using components from;
this library is built on numba and has less issues with binaries and compilation.
This library does not support all the features and input formats available in the hdbscan library.
Basic Usage
The fast_hdbscan library follows the hdbscan library in using the sklearn API. You can use the fast_hdbscan class HDBSCAN exactly as you would that of the hdbscan library with the caveat that fast_hdbscan only supports a subset of the parameters and options of hdbscan. Nonetheless, if you have low-dimensional Euclidean data (e.g. the output of UMAP), you can use this library as a straightforward drop in replacement for hdbscan:
import fast_hdbscan
from sklearn.datasets import make_blobs
data, _ = make_blobs(1000)
clusterer = fast_hdbscan.HDBSCAN(min_cluster_size=10)
cluster_labels = clusterer.fit_predict(data)
Installation
fast_hdbscan requires:
numba
numpy
scikit-learn
fast_hdbscan can be installed via pip:
pip install fast_hdbscan
To manually install this package:
wget https://github.com/TutteInstitute/fast_hdbscan/archive/main.zip
unzip main.zip
rm main.zip
cd fast_hdbscan-main
python setup.py install
References
The algorithm used here is an adaptation of the algorithms described in the papers:
McInnes L, Healy J. Accelerated Hierarchical Density Based Clustering In: 2017 IEEE International Conference on Data Mining Workshops (ICDMW), IEEE, pp 33-42. 2017 [pdf]
R. Campello, D. Moulavi, and J. Sander, Density-Based Clustering Based on Hierarchical Density Estimates In: Advances in Knowledge Discovery and Data Mining, Springer, pp 160-172. 2013
License
fast_hdbscan is BSD (2-clause) licensed. See the LICENSE file for details.
Contributing
Contributions are more than welcome! If you have ideas for features of projects please get in touch. Everything from code to notebooks to examples and documentation are all equally valuable so please don’t feel you can’t contribute. To contribute please fork the project make your changes and submit a pull request. We will do our best to work through any issues with you and get your code merged in.
Metadata
Release files for fast_hdbscan 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| fast_hdbscan-0.2.1.tar.gz | 25.9 kB | Without provenance | Details for fast_hdbscan-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fast_hdbscan-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for fast_hdbscan-0.2.1-py3-none-any.whl |
Total release size: 53.3 kB
Release files / fast_hdbscan-0.2.1.tar.gz
| Download URL | fast_hdbscan-0.2.1.tar.gz |
|---|---|
| Size | 25.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6c361f40de6dec92fcca60bcd1f94efe4a81524c95998d295cee98d7717ab0ad
|
|
BLAKE2b-256 checksum How to use checksums |
3628179e7dbe8f9a08a9a3e180fad3b048ec0f20fb10119d2bef52bb63bd5d30
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Release files / fast_hdbscan-0.2.1-py3-none-any.whl
| Download URL | fast_hdbscan-0.2.1-py3-none-any.whl |
|---|---|
| Size | 27.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
29928bc861cfe105c8fd5f4884f624892961954a44ee3a81b6aad64a249ac546
|
|
BLAKE2b-256 checksum How to use checksums |
9fb16a86480fb38433b17133e46e9c10c2d578f4cf853ba6ff65819db967dee8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.16
|
Security for fast_hdbscan 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.