[mlpack-git] master: Better handling of cover trees. (0a71f31)
gitdub at big.cc.gt.atl.ga.us
gitdub at big.cc.gt.atl.ga.us
Thu Mar 12 16:03:26 EDT 2015
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/eddd7167d69b6c88b271ef2e51d1c20e13f1acd8...70342dd8e5c17e0c164cfb8189748671e9c0dd44
>---------------------------------------------------------------
commit 0a71f31d2aa7ab7c28ce3ce6e3c6ffdd518b38b3
Author: Ryan Curtin <ryan at ratml.org>
Date: Sun Feb 1 21:06:46 2015 -0500
Better handling of cover trees.
>---------------------------------------------------------------
0a71f31d2aa7ab7c28ce3ce6e3c6ffdd518b38b3
src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp b/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp
index 0833ec3..a537fb2 100644
--- a/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp
+++ b/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp
@@ -41,7 +41,7 @@ TreeType* BuildTree(
tree::TreeTraits<TreeType>::RearrangesDataset == false, TreeType*
>::type = 0)
{
- return new TreeType(dataset, 1);
+ return new TreeType(dataset);
}
template<typename MetricType, typename MatType, typename TreeType>
@@ -216,11 +216,12 @@ void DTNNKMeans<MetricType, MatType, TreeType>::UpdateTree(
for (size_t i = 0; i < node.NumPoints(); ++i)
{
// Don't forget to map back from the new cluster index.
+ const size_t c = (tree::TreeTraits<TreeType>::RearrangesDataset) ?
+ oldFromNewCentroids[assignments(0, node.Point(i))] :
+ assignments(0, node.Point(i));
if (owner == centroids.n_cols + 1)
- owner = (tree::TreeTraits<TreeType>::RearrangesDataset) ?
- oldFromNewCentroids[assignments(0, node.Point(i))] :
- oldFromNewCentroids[assignments(0, node.Point(i))];
- else if (owner != oldFromNewCentroids[assignments(0, node.Point(i))])
+ owner = c;
+ else if (owner != c)
singleOwner = false;
// Update maximum cluster distance and second cluster bound.
@@ -291,6 +292,7 @@ oldFromNewCentroids[assignments(0, node.Point(i - 1))] << ".\n";
}
*/
+
// What is the maximum distance to the closest cluster in the node?
if (node.Stat().MaxClusterDistance() +
clusterDistances[node.Stat().Owner()] <
More information about the mlpack-git
mailing list