|
1 | | -1.4.0 |
2 | | - - Added a "display" method to hierarchical clusters (by 1kastner). |
3 | | - |
4 | | -1.2.1 |
5 | | - - Fixed an issue in multiprocessing code. |
6 | | - |
7 | | -1.2.0 |
8 | | - - Multiprocessing (by loisaidasam) |
9 | | - - Python 3 support |
10 | | - - Split up one big file into smaller more logical sub-modules |
11 | | - - Fixed https://github.com/exhuma/python-cluster/issues/11 |
12 | | - - Documentation update. |
13 | | - |
14 | | -1.1.1b3 |
15 | | - - Fixed bug #1727558 |
16 | | - - Some more unit-tests |
17 | | - - ValueError changed to ClusteringError where appropriate |
18 | | - |
19 | | -1.1.1b2 |
20 | | - - Fixed bug #1604859 (thanks to Willi Richert for reporting it) |
21 | | - |
22 | | -1.1.1b1 |
23 | | - - Applied patch [1535137] (thanks ajaksu) |
24 | | - --> Topology output supported |
25 | | - --> data and raw_data are now properties. |
26 | | - |
27 | | -1.1.0b1 |
28 | | - - KMeans Clustering implemented for simple numeric tuples. |
29 | | - Data in the form [(1,1), (2,1), (5,3), ...] |
30 | | - can be clustered. |
31 | | - |
32 | | - Usage: |
33 | | - |
34 | | - >>> from cluster import KMeansClustering |
35 | | - >>> cl = KMeansClustering([(1,1), (2,1), (5,3), ...]) |
36 | | - >>> clusters = cl.getclusters(2) |
37 | | - |
38 | | - the method "getclusters" takes the amount of clusters you would like to |
39 | | - have as parameter. |
40 | | - |
41 | | - Only numeric values are supported in the tuples. The reason for this is |
42 | | - that the "centroid" method which I use, essentially returns a tuple of |
43 | | - floats. So you will lose any other kind of metadata. Once I figure out a |
44 | | - way how to recode that method, other types should be possible. |
45 | | - |
46 | | -1.0.1b2 |
47 | | - - Optimized calculation of the hierarchical clustering by using the fact, that |
48 | | - the generated matrix is symmetrical. |
49 | | - |
50 | | -1.0.1b1 |
51 | | - - Implemented complete-, average-, and uclus-linkage methods. You can select |
52 | | - one by specifying it in the constructor, for example: |
53 | | - |
54 | | - cl = HierarchicalClustering(data, distfunc, linkage='uclus') |
55 | | - |
56 | | - or by setting it before starting the clustering process: |
57 | | - |
58 | | - cl = HierarchicalClustering(data, distfunc) |
59 | | - cl.setLinkageMethod('uclus') |
60 | | - cl.cluster() |
61 | | - |
62 | | - - Clustering is not executed on object creation, but on the first call of |
63 | | - "getlevel". You can force the creation of the clusters by calling the |
64 | | - "cluster" method as shown above. |
| 1 | +Release 1.4.1.post1 |
| 2 | +=================== |
| 3 | + |
| 4 | +This is a "house-keeping" commit. No new features or fixes are introduced. |
| 5 | + |
| 6 | +* Update changelog. |
| 7 | +* Switch doc-building to use ``pipenv`` & update ``Pipfile`` accordingly. |
| 8 | + |
| 9 | +Release 1.4.1 |
| 10 | +============= |
| 11 | + |
| 12 | +* Fix clustering of dictionaries. See GitHub issue #28 (Tim Littlefair). |
| 13 | + |
| 14 | +Release 1.4.0 |
| 15 | +============= |
| 16 | + |
| 17 | +* Added a "display" method to hierarchical clusters (by 1kastner). |
| 18 | + |
| 19 | +Release 1.3.2 & 1.3.3 |
| 20 | +===================== |
| 21 | + |
| 22 | +* Fix regression introduced in 1.3.1 related to package version metadata. |
| 23 | + |
| 24 | +Release 1.3.1 |
| 25 | +============= |
| 26 | + |
| 27 | +* Don't break if the cluster is initiated with iterable elements (GitHub Issue |
| 28 | + #20). |
| 29 | +* Fix package version metadata in setup.py |
| 30 | + |
| 31 | +Release 1.3.0 |
| 32 | +============= |
| 33 | + |
| 34 | +* Performance improvments for hierarchical clustering (at the cost of memory) |
| 35 | +* Cluster instances are now iterable. It will iterate over each element, |
| 36 | + resulting in a flat list of items. |
| 37 | +* New option to specify a progress callback to hierarchical clustring. This |
| 38 | + method will be called on each iteration for hierarchical clusters. It gets |
| 39 | + two numeric values as argument: The total count of elements, and the number |
| 40 | + of processed elements. It gives users a way to present to progress on screen. |
| 41 | +* The library now also has a ``__version__`` member. |
| 42 | + |
| 43 | + |
| 44 | +Release 1.2.2 |
| 45 | +============= |
| 46 | + |
| 47 | +* Package metadata fixed. |
| 48 | + |
| 49 | +Release 1.2.1 |
| 50 | +============= |
| 51 | + |
| 52 | +* Fixed an issue in multiprocessing code. |
| 53 | + |
| 54 | +Release 1.2.0 |
| 55 | +============= |
| 56 | + |
| 57 | +* Multiprocessing (by loisaidasam) |
| 58 | +* Python 3 support |
| 59 | +* Split up one big file into smaller more logical sub-modules |
| 60 | +* Fixed https://github.com/exhuma/python-cluster/issues/11 |
| 61 | +* Documentation update. |
| 62 | +* Migrated to GitHub |
| 63 | + |
| 64 | +Release 1.1.1b3 |
| 65 | +=============== |
| 66 | + |
| 67 | +* Fixed bug #1727558 |
| 68 | +* Some more unit-tests |
| 69 | +* ValueError changed to ClusteringError where appropriate |
| 70 | + |
| 71 | +Release 1.1.1b2 |
| 72 | +=============== |
| 73 | + |
| 74 | +* Fixed bug #1604859 (thanks to Willi Richert for reporting it) |
| 75 | + |
| 76 | +Release 1.1.1b1 |
| 77 | +=============== |
| 78 | + |
| 79 | +* Applied SVN patch [1535137] (thanks ajaksu) |
| 80 | + |
| 81 | + * Topology output supported |
| 82 | + * ``data`` and ``raw_data`` are now properties. |
| 83 | + |
| 84 | +Release 1.1.0b1 |
| 85 | +=============== |
| 86 | + |
| 87 | +* KMeans Clustering implemented for simple numeric tuples. |
| 88 | + |
| 89 | + Data in the form ``[(1,1), (2,1), (5,3), ...]`` can be clustered. |
| 90 | + |
| 91 | + Usage:: |
| 92 | + |
| 93 | + >>> from cluster import KMeansClustering |
| 94 | + >>> cl = KMeansClustering([(1,1), (2,1), (5,3), ...]) |
| 95 | + >>> clusters = cl.getclusters(2) |
| 96 | + |
| 97 | + The method ``getclusters`` takes the amount of clusters you would like to |
| 98 | + have as parameter. |
| 99 | + |
| 100 | + Only numeric values are supported in the tuples. The reason for this is |
| 101 | + that the "centroid" method which I use, essentially returns a tuple of |
| 102 | + floats. So you will lose any other kind of metadata. Once I figure out a |
| 103 | + way how to recode that method, other types should be possible. |
| 104 | + |
| 105 | +Release 1.0.1b2 |
| 106 | +=============== |
| 107 | + |
| 108 | +* Optimized calculation of the hierarchical clustering by using the fact, that |
| 109 | + the generated matrix is symmetrical. |
| 110 | + |
| 111 | +Release 1.0.1b1 |
| 112 | +=============== |
| 113 | + |
| 114 | +* Implemented complete-, average-, and uclus-linkage methods. You can select |
| 115 | + one by specifying it in the constructor, for example:: |
| 116 | + |
| 117 | + cl = HierarchicalClustering(data, distfunc, linkage='uclus') |
| 118 | + |
| 119 | + or by setting it before starting the clustering process:: |
| 120 | + |
| 121 | + cl = HierarchicalClustering(data, distfunc) |
| 122 | + cl.setLinkageMethod('uclus') |
| 123 | + cl.cluster() |
| 124 | + |
| 125 | +* Clustering is not executed on object creation, but on the first call of |
| 126 | + ``getlevel``. You can force the creation of the clusters by calling the |
| 127 | + ``cluster`` method as shown above. |
| 128 | + |
| 129 | +.. vim: filetype=rst : |
0 commit comments