[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