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 ¢roids, 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... | |
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.
using NNSTreeType = TreeType<TreeMetricType, DualTreeKMeansStatistic, TreeMatType> |
Definition at line 51 of file dual_tree_kmeans.hpp.
typedef TreeType<MetricType, DualTreeKMeansStatistic, MatType> Tree |
Convenience typedef.
Definition at line 45 of file dual_tree_kmeans.hpp.
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.
|
inline |
Return the number of distance calculations.
Definition at line 77 of file dual_tree_kmeans.hpp.
|
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().
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.
centroids | Current cluster centroids. |
newCentroids | New cluster centroids. |
counts | Current counts, to be overwritten with new counts. |