DualTreeKMeans< MetricType, MatType, TreeType > Class Template Reference

An algorithm for an exact Lloyd iteration which simply uses dual-tree nearest-neighbor search to find the nearest centroid for each point in the dataset. More...

Public Types

template
<
typename
TreeMetricType
,
typename
IgnoredStatType
,
typename
TreeMatType
>
using NNSTreeType = TreeType< TreeMetricType, DualTreeKMeansStatistic, TreeMatType >
 
typedef TreeType< MetricType, DualTreeKMeansStatistic, MatType > Tree
 Convenience typedef. More...

 

Public Member Functions

 DualTreeKMeans (const MatType &dataset, MetricType &metric)
 Construct the DualTreeKMeans object, which will construct a tree on the points. More...

 
 ~DualTreeKMeans ()
 Delete the tree constructed by the DualTreeKMeans object. More...

 
size_t DistanceCalculations () const
 Return the number of distance calculations. More...

 
size_t & DistanceCalculations ()
 Modify the number of distance calculations. More...

 
double Iterate (const arma::mat &centroids, arma::mat &newCentroids, arma::Col< size_t > &counts)
 Run a single iteration of the dual-tree nearest neighbor algorithm for k-means, updating the given centroids into the newCentroids matrix. More...

 

Detailed Description


template
<
typename
MetricType
,
typename
MatType
,
template
<
typename
TreeMetricType
,
typename
TreeStatType
,
typename
TreeMatType
>
class
TreeType
=
tree::KDTree
>

class mlpack::kmeans::DualTreeKMeans< MetricType, MatType, TreeType >

An algorithm for an exact Lloyd iteration which simply uses dual-tree nearest-neighbor search to find the nearest centroid for each point in the dataset.

The conditions under which this will perform best are 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.

Definition at line 41 of file dual_tree_kmeans.hpp.

Member Typedef Documentation

◆ NNSTreeType

using NNSTreeType = TreeType<TreeMetricType, DualTreeKMeansStatistic, TreeMatType>

Definition at line 51 of file dual_tree_kmeans.hpp.

◆ Tree

typedef TreeType<MetricType, DualTreeKMeansStatistic, MatType> Tree

Convenience typedef.

Definition at line 45 of file dual_tree_kmeans.hpp.

Constructor & Destructor Documentation

◆ DualTreeKMeans()

DualTreeKMeans ( const MatType &  dataset,
MetricType &  metric 
)

Construct the DualTreeKMeans object, which will construct a tree on the points.

◆ ~DualTreeKMeans()

Delete the tree constructed by the DualTreeKMeans object.

Member Function Documentation

◆ DistanceCalculations() [1/2]

size_t DistanceCalculations ( ) const
inline

Return the number of distance calculations.

Definition at line 77 of file dual_tree_kmeans.hpp.

◆ DistanceCalculations() [2/2]

size_t& DistanceCalculations ( )
inline

Modify the number of distance calculations.

Definition at line 79 of file dual_tree_kmeans.hpp.

References mlpack::kmeans::HideChild(), and mlpack::kmeans::RestoreChildren().

◆ Iterate()

double Iterate ( const arma::mat &  centroids,
arma::mat &  newCentroids,
arma::Col< size_t > &  counts 
)

Run a single iteration of the dual-tree nearest neighbor algorithm for k-means, updating the given centroids into the newCentroids matrix.

Parameters
centroidsCurrent cluster centroids.
newCentroidsNew cluster centroids.
countsCurrent counts, to be overwritten with new counts.

The documentation for this class was generated from the following file: