[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