[mlpack-git] master: Rename DTNNKMeans to DualTreeKMeans. (6805075)

gitdub at big.cc.gt.atl.ga.us gitdub at big.cc.gt.atl.ga.us
Thu Apr 2 13:06:24 EDT 2015


Repository : https://github.com/mlpack/mlpack

On branch  : master
Link       : https://github.com/mlpack/mlpack/compare/2eddaf17ee79b596f3cc2dc33909789f517be565...680507571b76385917e76c1a477c52871cc96704

>---------------------------------------------------------------

commit 680507571b76385917e76c1a477c52871cc96704
Author: Ryan Curtin <ryan at ratml.org>
Date:   Thu Apr 2 13:06:08 2015 -0400

    Rename DTNNKMeans to DualTreeKMeans.


>---------------------------------------------------------------

680507571b76385917e76c1a477c52871cc96704
 src/mlpack/methods/kmeans/CMakeLists.txt           | 10 ++++----
 .../{dtnn_kmeans.hpp => dual_tree_kmeans.hpp}      | 30 +++++++++++-----------
 ...n_kmeans_impl.hpp => dual_tree_kmeans_impl.hpp} | 24 +++++++++--------
 .../{dtnn_rules.hpp => dual_tree_kmeans_rules.hpp} | 26 +++++++++----------
 ...es_impl.hpp => dual_tree_kmeans_rules_impl.hpp} | 18 ++++++-------
 ...tatistic.hpp => dual_tree_kmeans_statistic.hpp} |  8 +++---
 src/mlpack/methods/kmeans/kmeans_main.cpp          |  2 +-
 src/mlpack/tests/kmeans_test.cpp                   |  5 ++--
 8 files changed, 62 insertions(+), 61 deletions(-)

diff --git a/src/mlpack/methods/kmeans/CMakeLists.txt b/src/mlpack/methods/kmeans/CMakeLists.txt
index 5d488aa..1cc3d94 100644
--- a/src/mlpack/methods/kmeans/CMakeLists.txt
+++ b/src/mlpack/methods/kmeans/CMakeLists.txt
@@ -2,11 +2,11 @@
 # Anything not in this list will not be compiled into MLPACK.
 set(SOURCES
   allow_empty_clusters.hpp
-  dtnn_kmeans.hpp
-  dtnn_kmeans_impl.hpp
-  dtnn_rules.hpp
-  dtnn_rules_impl.hpp
-  dtnn_statistic.hpp
+  dual_tree_kmeans.hpp
+  dual_tree_kmeans_impl.hpp
+  dual_tree_kmeans_rules.hpp
+  dual_tree_kmeans_rules_impl.hpp
+  dual_tree_kmeans_statistic.hpp
   elkan_kmeans.hpp
   elkan_kmeans_impl.hpp
   hamerly_kmeans.hpp
diff --git a/src/mlpack/methods/kmeans/dtnn_kmeans.hpp b/src/mlpack/methods/kmeans/dual_tree_kmeans.hpp
similarity index 82%
rename from src/mlpack/methods/kmeans/dtnn_kmeans.hpp
rename to src/mlpack/methods/kmeans/dual_tree_kmeans.hpp
index adf009f..d849379 100644
--- a/src/mlpack/methods/kmeans/dtnn_kmeans.hpp
+++ b/src/mlpack/methods/kmeans/dual_tree_kmeans.hpp
@@ -7,14 +7,14 @@
  * probably limited to the case where k is close to the number of points in the
  * dataset, and the number of iterations of the k-means algorithm will be few.
  */
-#ifndef __MLPACK_METHODS_KMEANS_DTNN_KMEANS_HPP
-#define __MLPACK_METHODS_KMEANS_DTNN_KMEANS_HPP
+#ifndef __MLPACK_METHODS_KMEANS_DUAL_TREE_KMEANS_HPP
+#define __MLPACK_METHODS_KMEANS_DUAL_TREE_KMEANS_HPP
 
 #include <mlpack/core/tree/binary_space_tree.hpp>
 #include <mlpack/methods/neighbor_search/neighbor_search.hpp>
 #include <mlpack/core/tree/cover_tree.hpp>
 
-#include "dtnn_statistic.hpp"
+#include "dual_tree_kmeans_statistic.hpp"
 
 namespace mlpack {
 namespace kmeans {
@@ -30,19 +30,19 @@ template<
     typename MetricType,
     typename MatType,
     typename TreeType = tree::BinarySpaceTree<bound::HRectBound<2>,
-        DTNNStatistic> >
-class DTNNKMeans
+        DualTreeKMeansStatistic> >
+class DualTreeKMeans
 {
  public:
   /**
-   * Construct the DTNNKMeans object, which will construct a tree on the points.
+   * Construct the DualTreeKMeans object, which will construct a tree on the points.
    */
-  DTNNKMeans(const MatType& dataset, MetricType& metric);
+  DualTreeKMeans(const MatType& dataset, MetricType& metric);
 
   /**
-   * Delete the tree constructed by the DTNNKMeans object.
+   * Delete the tree constructed by the DualTreeKMeans object.
    */
-  ~DTNNKMeans();
+  ~DualTreeKMeans();
 
   /**
    * Run a single iteration of the dual-tree nearest neighbor algorithm for
@@ -112,20 +112,20 @@ class DTNNKMeans
   void DecoalesceTree(TreeType& node);
 };
 
-//! A template typedef for the DTNNKMeans algorithm with the default tree type
+//! A template typedef for the DualTreeKMeans algorithm with the default tree type
 //! (a kd-tree).
 template<typename MetricType, typename MatType>
-using DefaultDTNNKMeans = DTNNKMeans<MetricType, MatType>;
+using DefaultDualTreeKMeans = DualTreeKMeans<MetricType, MatType>;
 
-//! A template typedef for the DTNNKMeans algorithm with the cover tree type.
+//! A template typedef for the DualTreeKMeans algorithm with the cover tree type.
 template<typename MetricType, typename MatType>
-using CoverTreeDTNNKMeans = DTNNKMeans<MetricType, MatType,
+using CoverTreeDualTreeKMeans = DualTreeKMeans<MetricType, MatType,
     tree::CoverTree<metric::EuclideanDistance, tree::FirstPointIsRoot,
-    DTNNStatistic> >;
+    DualTreeKMeansStatistic> >;
 
 } // namespace kmeans
 } // namespace mlpack
 
-#include "dtnn_kmeans_impl.hpp"
+#include "dual_tree_kmeans_impl.hpp"
 
 #endif
diff --git a/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp b/src/mlpack/methods/kmeans/dual_tree_kmeans_impl.hpp
similarity index 96%
rename from src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp
rename to src/mlpack/methods/kmeans/dual_tree_kmeans_impl.hpp
index f5eaf12..02159ca 100644
--- a/src/mlpack/methods/kmeans/dtnn_kmeans_impl.hpp
+++ b/src/mlpack/methods/kmeans/dual_tree_kmeans_impl.hpp
@@ -11,9 +11,9 @@
 #define __MLPACK_METHODS_KMEANS_DTNN_KMEANS_IMPL_HPP
 
 // In case it hasn't been included yet.
-#include "dtnn_kmeans.hpp"
+#include "dual_tree_kmeans.hpp"
 
-#include "dtnn_rules.hpp"
+#include "dual_tree_kmeans_rules.hpp"
 
 namespace mlpack {
 namespace kmeans {
@@ -45,8 +45,9 @@ TreeType* BuildTree(
 }
 
 template<typename MetricType, typename MatType, typename TreeType>
-DTNNKMeans<MetricType, MatType, TreeType>::DTNNKMeans(const MatType& dataset,
-                                                      MetricType& metric) :
+DualTreeKMeans<MetricType, MatType, TreeType>::DualTreeKMeans(
+    const MatType& dataset,
+    MetricType& metric) :
     datasetOrig(dataset),
     dataset(tree::TreeTraits<TreeType>::RearrangesDataset ? datasetCopy :
         datasetOrig),
@@ -81,7 +82,7 @@ DTNNKMeans<MetricType, MatType, TreeType>::DTNNKMeans(const MatType& dataset,
 }
 
 template<typename MetricType, typename MatType, typename TreeType>
-DTNNKMeans<MetricType, MatType, TreeType>::~DTNNKMeans()
+DualTreeKMeans<MetricType, MatType, TreeType>::~DualTreeKMeans()
 {
   if (tree)
     delete tree;
@@ -89,7 +90,7 @@ DTNNKMeans<MetricType, MatType, TreeType>::~DTNNKMeans()
 
 // Run a single iteration.
 template<typename MetricType, typename MatType, typename TreeType>
-double DTNNKMeans<MetricType, MatType, TreeType>::Iterate(
+double DualTreeKMeans<MetricType, MatType, TreeType>::Iterate(
     const arma::mat& centroids,
     arma::mat& newCentroids,
     arma::Col<size_t>& counts)
@@ -133,7 +134,7 @@ double DTNNKMeans<MetricType, MatType, TreeType>::Iterate(
 
   // We won't use the AllkNN class here because we have our own set of rules.
   //lastIterationCentroids = oldCentroids;
-  typedef DTNNKMeansRules<MetricType, TreeType> RuleType;
+  typedef DualTreeKMeansRules<MetricType, TreeType> RuleType;
   RuleType rules(centroids, dataset, assignments, upperBounds, lowerBounds,
       metric, prunedPoints, oldFromNewCentroids, visited);
 
@@ -193,7 +194,7 @@ double DTNNKMeans<MetricType, MatType, TreeType>::Iterate(
 }
 
 template<typename MetricType, typename MatType, typename TreeType>
-void DTNNKMeans<MetricType, MatType, TreeType>::UpdateTree(
+void DualTreeKMeans<MetricType, MatType, TreeType>::UpdateTree(
     TreeType& node,
     const arma::mat& centroids,
     const arma::vec& interclusterDistances)
@@ -407,7 +408,7 @@ visited[node.Descendant(i)] << ".\n";
 }
 
 template<typename MetricType, typename MatType, typename TreeType>
-void DTNNKMeans<MetricType, MatType, TreeType>::ExtractCentroids(
+void DualTreeKMeans<MetricType, MatType, TreeType>::ExtractCentroids(
     TreeType& node,
     arma::mat& newCentroids,
     arma::Col<size_t>& newCounts,
@@ -496,7 +497,7 @@ assignments[node.Point(i)] << " with ub " << upperBounds[node.Point(i)] <<
 }
 
 template<typename MetricType, typename MatType, typename TreeType>
-void DTNNKMeans<MetricType, MatType, TreeType>::CoalesceTree(
+void DualTreeKMeans<MetricType, MatType, TreeType>::CoalesceTree(
     TreeType& node,
     const size_t child /* Which child are we? */)
 {
@@ -543,7 +544,8 @@ void DTNNKMeans<MetricType, MatType, TreeType>::CoalesceTree(
 }
 
 template<typename MetricType, typename MatType, typename TreeType>
-void DTNNKMeans<MetricType, MatType, TreeType>::DecoalesceTree(TreeType& node)
+void DualTreeKMeans<MetricType, MatType, TreeType>::DecoalesceTree(
+    TreeType& node)
 {
   node.Parent() = (TreeType*) node.Stat().TrueParent();
   node.ChildPtr(0) = (TreeType*) node.Stat().TrueLeft();
diff --git a/src/mlpack/methods/kmeans/dtnn_rules.hpp b/src/mlpack/methods/kmeans/dual_tree_kmeans_rules.hpp
similarity index 72%
rename from src/mlpack/methods/kmeans/dtnn_rules.hpp
rename to src/mlpack/methods/kmeans/dual_tree_kmeans_rules.hpp
index c2f7873..1c07de5 100644
--- a/src/mlpack/methods/kmeans/dtnn_rules.hpp
+++ b/src/mlpack/methods/kmeans/dual_tree_kmeans_rules.hpp
@@ -6,8 +6,8 @@
  * nearest neighbor search.  For the most part we'll call out to
  * NeighborSearchRules when we can.
  */
-#ifndef __MLPACK_METHODS_KMEANS_DTNN_RULES_HPP
-#define __MLPACK_METHODS_KMEANS_DTNN_RULES_HPP
+#ifndef __MLPACK_METHODS_KMEANS_DUAL_TREE_KMEANS_RULES_HPP
+#define __MLPACK_METHODS_KMEANS_DUAL_TREE_KMEANS_RULES_HPP
 
 #include <mlpack/methods/neighbor_search/ns_traversal_info.hpp>
 
@@ -15,18 +15,18 @@ namespace mlpack {
 namespace kmeans {
 
 template<typename MetricType, typename TreeType>
-class DTNNKMeansRules
+class DualTreeKMeansRules
 {
  public:
-  DTNNKMeansRules(const arma::mat& centroids,
-                  const arma::mat& dataset,
-                  arma::Col<size_t>& assignments,
-                  arma::vec& upperBounds,
-                  arma::vec& lowerBounds,
-                  MetricType& metric,
-                  const std::vector<bool>& prunedPoints,
-                  const std::vector<size_t>& oldFromNewCentroids,
-                  std::vector<bool>& visited);
+  DualTreeKMeansRules(const arma::mat& centroids,
+                      const arma::mat& dataset,
+                      arma::Col<size_t>& assignments,
+                      arma::vec& upperBounds,
+                      arma::vec& lowerBounds,
+                      MetricType& metric,
+                      const std::vector<bool>& prunedPoints,
+                      const std::vector<size_t>& oldFromNewCentroids,
+                      std::vector<bool>& visited);
 
   double BaseCase(const size_t queryIndex, const size_t referenceIndex);
 
@@ -77,6 +77,6 @@ class DTNNKMeansRules
 } // namespace kmeans
 } // namespace mlpack
 
-#include "dtnn_rules_impl.hpp"
+#include "dual_tree_kmeans_rules_impl.hpp"
 
 #endif
diff --git a/src/mlpack/methods/kmeans/dtnn_rules_impl.hpp b/src/mlpack/methods/kmeans/dual_tree_kmeans_rules_impl.hpp
similarity index 95%
rename from src/mlpack/methods/kmeans/dtnn_rules_impl.hpp
rename to src/mlpack/methods/kmeans/dual_tree_kmeans_rules_impl.hpp
index 88e8c42..8fc883e 100644
--- a/src/mlpack/methods/kmeans/dtnn_rules_impl.hpp
+++ b/src/mlpack/methods/kmeans/dual_tree_kmeans_rules_impl.hpp
@@ -4,16 +4,16 @@
  *
  * Implementation of DualTreeKMeansRules.
  */
-#ifndef __MLPACK_METHODS_KMEANS_DTNN_RULES_IMPL_HPP
-#define __MLPACK_METHODS_KMEANS_DTNN_RULES_IMPL_HPP
+#ifndef __MLPACK_METHODS_KMEANS_DUAL_TREE_KMEANS_RULES_IMPL_HPP
+#define __MLPACK_METHODS_KMEANS_DUAL_TREE_KMEANS_RULES_IMPL_HPP
 
-#include "dtnn_rules.hpp"
+#include "dual_tree_kmeans_rules.hpp"
 
 namespace mlpack {
 namespace kmeans {
 
 template<typename MetricType, typename TreeType>
-DTNNKMeansRules<MetricType, TreeType>::DTNNKMeansRules(
+DualTreeKMeansRules<MetricType, TreeType>::DualTreeKMeansRules(
     const arma::mat& centroids,
     const arma::mat& dataset,
     arma::Col<size_t>& assignments,
@@ -45,7 +45,7 @@ DTNNKMeansRules<MetricType, TreeType>::DTNNKMeansRules(
 }
 
 template<typename MetricType, typename TreeType>
-inline force_inline double DTNNKMeansRules<MetricType, TreeType>::BaseCase(
+inline force_inline double DualTreeKMeansRules<MetricType, TreeType>::BaseCase(
     const size_t queryIndex,
     const size_t referenceIndex)
 {
@@ -85,7 +85,7 @@ inline force_inline double DTNNKMeansRules<MetricType, TreeType>::BaseCase(
 }
 
 template<typename MetricType, typename TreeType>
-inline double DTNNKMeansRules<MetricType, TreeType>::Score(
+inline double DualTreeKMeansRules<MetricType, TreeType>::Score(
     const size_t queryIndex,
     TreeType& /* referenceNode */)
 {
@@ -99,7 +99,7 @@ inline double DTNNKMeansRules<MetricType, TreeType>::Score(
 }
 
 template<typename MetricType, typename TreeType>
-inline double DTNNKMeansRules<MetricType, TreeType>::Score(
+inline double DualTreeKMeansRules<MetricType, TreeType>::Score(
     TreeType& queryNode,
     TreeType& referenceNode)
 {
@@ -284,7 +284,7 @@ inline double DTNNKMeansRules<MetricType, TreeType>::Score(
 }
 
 template<typename MetricType, typename TreeType>
-inline double DTNNKMeansRules<MetricType, TreeType>::Rescore(
+inline double DualTreeKMeansRules<MetricType, TreeType>::Rescore(
     const size_t /* queryIndex */,
     TreeType& /* referenceNode */,
     const double oldScore)
@@ -294,7 +294,7 @@ inline double DTNNKMeansRules<MetricType, TreeType>::Rescore(
 }
 
 template<typename MetricType, typename TreeType>
-inline double DTNNKMeansRules<MetricType, TreeType>::Rescore(
+inline double DualTreeKMeansRules<MetricType, TreeType>::Rescore(
     TreeType& queryNode,
     TreeType& referenceNode,
     const double oldScore)
diff --git a/src/mlpack/methods/kmeans/dtnn_statistic.hpp b/src/mlpack/methods/kmeans/dual_tree_kmeans_statistic.hpp
similarity index 95%
rename from src/mlpack/methods/kmeans/dtnn_statistic.hpp
rename to src/mlpack/methods/kmeans/dual_tree_kmeans_statistic.hpp
index 51f4f60..8aaec4b 100644
--- a/src/mlpack/methods/kmeans/dtnn_statistic.hpp
+++ b/src/mlpack/methods/kmeans/dual_tree_kmeans_statistic.hpp
@@ -12,11 +12,11 @@
 namespace mlpack {
 namespace kmeans {
 
-class DTNNStatistic : public
+class DualTreeKMeansStatistic : public
     neighbor::NeighborSearchStat<neighbor::NearestNeighborSort>
 {
  public:
-  DTNNStatistic() :
+  DualTreeKMeansStatistic() :
       neighbor::NeighborSearchStat<neighbor::NearestNeighborSort>(),
       upperBound(DBL_MAX),
       lowerBound(DBL_MAX),
@@ -34,7 +34,7 @@ class DTNNStatistic : public
   }
 
   template<typename TreeType>
-  DTNNStatistic(TreeType& node) :
+  DualTreeKMeansStatistic(TreeType& node) :
       neighbor::NeighborSearchStat<neighbor::NearestNeighborSort>(),
       upperBound(DBL_MAX),
       lowerBound(DBL_MAX),
@@ -95,7 +95,7 @@ class DTNNStatistic : public
   std::string ToString() const
   {
     std::ostringstream o;
-    o << "DTNNStatistic [" << this << "]:\n";
+    o << "DualTreeKMeansStatistic [" << this << "]:\n";
     o << "  Upper bound: " << upperBound << ".\n";
     o << "  Lower bound: " << lowerBound << ".\n";
     o << "  Pruned: " << pruned << ".\n";
diff --git a/src/mlpack/methods/kmeans/kmeans_main.cpp b/src/mlpack/methods/kmeans/kmeans_main.cpp
index 2c5561b..93a549a 100644
--- a/src/mlpack/methods/kmeans/kmeans_main.cpp
+++ b/src/mlpack/methods/kmeans/kmeans_main.cpp
@@ -12,7 +12,7 @@
 #include "elkan_kmeans.hpp"
 #include "hamerly_kmeans.hpp"
 #include "pelleg_moore_kmeans.hpp"
-#include "dtnn_kmeans.hpp"
+#include "dual_tree_kmeans.hpp"
 
 using namespace mlpack;
 using namespace mlpack::kmeans;
diff --git a/src/mlpack/tests/kmeans_test.cpp b/src/mlpack/tests/kmeans_test.cpp
index 54ca95c..9d40e7f 100644
--- a/src/mlpack/tests/kmeans_test.cpp
+++ b/src/mlpack/tests/kmeans_test.cpp
@@ -10,7 +10,6 @@
 #include <mlpack/methods/kmeans/elkan_kmeans.hpp>
 #include <mlpack/methods/kmeans/hamerly_kmeans.hpp>
 #include <mlpack/methods/kmeans/pelleg_moore_kmeans.hpp>
-#include <mlpack/methods/kmeans/dtnn_kmeans.hpp>
 #include <mlpack/methods/kmeans/dual_tree_kmeans.hpp>
 
 #include <mlpack/core/tree/cover_tree/cover_tree.hpp>
@@ -617,7 +616,7 @@ BOOST_AUTO_TEST_CASE(DTNNTest)
     km.Cluster(dataset, k, assignments, naiveCentroids, false, true);
 
     KMeans<metric::EuclideanDistance, RandomPartition, MaxVarianceNewCluster,
-        DefaultDTNNKMeans> dtnn;
+        DefaultDualTreeKMeans> dtnn;
     arma::Col<size_t> dtnnAssignments;
     arma::mat dtnnCentroids(centroids);
     dtnn.Cluster(dataset, k, dtnnAssignments, dtnnCentroids, false, true);
@@ -649,7 +648,7 @@ BOOST_AUTO_TEST_CASE(DTNNCoverTreeTest)
     km.Cluster(dataset, k, assignments, naiveCentroids, false, true);
 
     KMeans<metric::EuclideanDistance, RandomPartition, MaxVarianceNewCluster,
-        CoverTreeDTNNKMeans> dtnn;
+        CoverTreeDualTreeKMeans> dtnn;
 /*    arma::Col<size_t> dtnnAssignments;
     arma::mat dtnnCentroids(centroids);
     dtnn.Cluster(dataset, k, dtnnAssignments, dtnnCentroids, false, true);



More information about the mlpack-git mailing list