Metadata-Version: 2.4
Name: lumbermark
Version: 0.9.0
Summary: Lumbermark: Resistant Clustering via Chopping Up Mutual Reachability Minimum Spanning Trees
Home-page: https://lumbermark.gagolewski.com/
Download-URL: https://github.com/gagolews/lumbermark
Author: Marek Gagolewski
Author-email: marek@gagolewski.com
Maintainer: Marek Gagolewski
License: GNU Affero General Public License v3
Project-URL: Bug Tracker, https://github.com/gagolews/lumbermark/issues
Project-URL: Documentation, https://lumbermark.gagolewski.com/
Project-URL: Source Code, https://github.com/gagolews/lumbermark
Project-URL: Benchmark Datasets, https://clustering-benchmarks.gagolewski.com/
Project-URL: Author, https://www.gagolewski.com/
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Development Status :: 5 - Production/Stable
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=2.0.0
Requires-Dist: Cython
Requires-Dist: scikit-learn
Requires-Dist: deadwood>=0.9.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: download-url
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: maintainer
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

<a href="https://lumbermark.gagolewski.com/"><img src="https://www.gagolewski.com/_static/img/lumbermark.png" align="right" height="128" width="128" /></a>
# [**lumbermark**](https://lumbermark.gagolewski.com/) Package for R and Python

### *Lumbermark*: Resistant Clustering via Chopping Up Mutual Reachability Minimum Spanning Trees

![lumbermark for Python](https://github.com/gagolews/lumbermark/workflows/lumbermark%20for%20Python/badge.svg)
![lumbermark for R](https://github.com/gagolews/lumbermark/workflows/lumbermark%20for%20R/badge.svg)

**Keywords**: Lumbermark, clustering, Genie, HDBSCAN\*, DBSCAN, outliers,
minimum spanning tree, MST, density estimation, mutual reachability distance.


Refer to the package **homepage** at <https://lumbermark.gagolewski.com/>
for the reference manual, tutorials, examples, and benchmarks.

**Author and Maintainer**: [Marek Gagolewski](https://www.gagolewski.com/)


## About

*Lumbermark* is a fast and resistant divisive clustering algorithm which
identifies a specified number of clusters.

It iteratively chops off sizeable limbs that are joined by protruding segments
of a dataset's mutual reachability minimum spanning tree.

The use of a mutual reachability distance pulls peripheral points farther
away from each other.

When combined with the [**deadwood**](https://deadwood.gagolewski.com/) package,
it can act as an outlier detector.


## How to Install

### Python Version

To install from [PyPI](https://pypi.org/project/lumbermark), call:

```bash
pip3 install lumbermark  # python3 -m pip install lumbermark
```

*To learn more about Python, check out my open-access textbook*
[Minimalist Data Wrangling in Python](https://datawranglingpy.gagolewski.com/).


### R Version

To install from [CRAN](https://CRAN.R-project.org/package=lumbermark), call:

```r
install.packages("lumbermark")
```

*To learn more about R, check out my open-access textbook*
[Deep R Programming](https://deepr.gagolewski.com/).


### Other

The core functionality is implemented in the form of a C++ library.
It can thus be easily adapted for use in other projects.

New contributions are welcome, e.g., Julia, Matlab/GNU Octave wrappers.


## License

Copyright (C) 2025–2026 Marek Gagolewski <https://www.gagolewski.com/>

This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Affero General Public License Version 3, 19
November 2007, published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
General Public License Version 3 for more details. You should have
received a copy of the License along with this program. If not, see
(https://www.gnu.org/licenses/).


## References

TODO

See **lumbermark**'s [homepage](https://lumbermark.gagolewski.com/) for more
references.
