Release 1.4.1.post1

This is a “house-keeping” commit. No new features or fixes are introduced.

  • Update changelog.
  • Switch doc-building to use pipenv & update Pipfile accordingly.

Release 1.4.1

  • Fix clustering of dictionaries. See GitHub issue #28 (Tim Littlefair).

Release 1.4.0

  • Added a “display” method to hierarchical clusters (by 1kastner).

Release 1.3.2 & 1.3.3

  • Fix regression introduced in 1.3.1 related to package version metadata.

Release 1.3.1

  • Don’t break if the cluster is initiated with iterable elements (GitHub Issue #20).
  • Fix package version metadata in

Release 1.3.0

  • Performance improvments for hierarchical clustering (at the cost of memory)
  • Cluster instances are now iterable. It will iterate over each element, resulting in a flat list of items.
  • New option to specify a progress callback to hierarchical clustring. This method will be called on each iteration for hierarchical clusters. It gets two numeric values as argument: The total count of elements, and the number of processed elements. It gives users a way to present to progress on screen.
  • The library now also has a __version__ member.

Release 1.2.2

  • Package metadata fixed.

Release 1.2.1

  • Fixed an issue in multiprocessing code.

Release 1.2.0

Release 1.1.1b3

  • Fixed bug #1727558
  • Some more unit-tests
  • ValueError changed to ClusteringError where appropriate

Release 1.1.1b2

  • Fixed bug #1604859 (thanks to Willi Richert for reporting it)

Release 1.1.1b1

  • Applied SVN patch [1535137] (thanks ajaksu)
    • Topology output supported
    • data and raw_data are now properties.

Release 1.1.0b1

  • KMeans Clustering implemented for simple numeric tuples.

    Data in the form [(1,1), (2,1), (5,3), ...] can be clustered.


    >>> from cluster import KMeansClustering
    >>> cl = KMeansClustering([(1,1), (2,1), (5,3), ...])
    >>> clusters = cl.getclusters(2)

    The method getclusters takes the amount of clusters you would like to have as parameter.

    Only numeric values are supported in the tuples. The reason for this is that the “centroid” method which I use, essentially returns a tuple of floats. So you will lose any other kind of metadata. Once I figure out a way how to recode that method, other types should be possible.

Release 1.0.1b2

  • Optimized calculation of the hierarchical clustering by using the fact, that the generated matrix is symmetrical.

Release 1.0.1b1

  • Implemented complete-, average-, and uclus-linkage methods. You can select one by specifying it in the constructor, for example:

    cl = HierarchicalClustering(data, distfunc, linkage='uclus')

    or by setting it before starting the clustering process:

    cl = HierarchicalClustering(data, distfunc)
  • Clustering is not executed on object creation, but on the first call of getlevel. You can force the creation of the clusters by calling the cluster method as shown above.