hierarchical-clustering: Fast algorithms for single, average/UPGMA and complete linkage clustering.

[ bsd3, clustering, library ] [ Propose Tags ]

This package provides a function to create a dendrogram from a list of items and a distance function between them. Initially a singleton cluster is created for each item, and then new, bigger clusters are created by merging the two clusters with least distance between them. The distance between two clusters is calculated according to the linkage type. The dendrogram represents not only the clusters but also the order on which they were created.

This package has many implementations with different performance characteristics. There are SLINK and CLINK algorithm implementations that are optimal in both space and time. There are also naive implementations using a distance matrix. Using the dendrogram function from Data.Clustering.Hierarchical automatically chooses the best implementation we have.

Changes in version 0.4:

  • Specialize the distance type to Double for efficiency reasons. It's uncommon to use distances other than Double.

  • Implement SLINK and CLINK. These are optimal algorithms in both space and time for single and complete linkage, respectively, running in O(n^2) time and O(n) space.

  • Reorganized internal implementation.

  • Some performance improvements for the naive implementation.

  • Better test coverage. Also, performance improvements for the test suite, now running in 3 seconds (instead of one minute).

Changes in version (version was skipped):

  • Added tests for many things. Use cabal test =).

Changes in version 0.3.1:

  • Works with containers 0.4 (thanks, Doug Beardsley).

  • Removed some internal unnecessary overheads and added some strictness.

Changes in version

  • Listed changes of unreleased version 0.2.

Changes in version 0.3:

  • Added function cutAt.

  • Fixed complexity in Haddock comments.

Changes in version 0.2:

  • Added function elements.

  • Added separate functions for each linkage type. This may be useful if you want to create a dendrogram and your distance data type isn't an instance of Floating.


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.1, 0.3,, 0.3.1,, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.6, 0.4.7
Dependencies array (>=0.3), base (>=4 && <5), containers (>=0.3) [details]
License BSD-3-Clause
Author Felipe Almeida Lessa
Maintainer felipe.lessa@gmail.com
Category Clustering
Source repo head: git clone https://github.com/meteficha/hierarchical-clustering
Uploaded by FelipeLessa at 2019-08-18T10:36:04Z
Distributions Debian:0.4.7
Reverse Dependencies 10 direct, 0 indirect [details]
Downloads 10538 total (30 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2019-08-18 [all 1 reports]