mlpack 3.4.2
naive_kmeans.hpp
Go to the documentation of this file.
1
15#ifndef MLPACK_METHODS_KMEANS_NAIVE_KMEANS_HPP
16#define MLPACK_METHODS_KMEANS_NAIVE_KMEANS_HPP
17#include <mlpack/prereqs.hpp>
18
19namespace mlpack {
20namespace kmeans {
21
31template<typename MetricType, typename MatType>
33{
34 public:
41 NaiveKMeans(const MatType& dataset, MetricType& metric);
42
53 double Iterate(const arma::mat& centroids,
54 arma::mat& newCentroids,
55 arma::Col<size_t>& counts);
56
57 size_t DistanceCalculations() const { return distanceCalculations; }
58
59 private:
61 const MatType& dataset;
63 MetricType& metric;
64
66 size_t distanceCalculations;
67};
68
69} // namespace kmeans
70} // namespace mlpack
71
72// Include implementation.
73#include "naive_kmeans_impl.hpp"
74
75#endif
This is an implementation of a single iteration of Lloyd's algorithm for k-means.
double Iterate(const arma::mat &centroids, arma::mat &newCentroids, arma::Col< size_t > &counts)
Run a single iteration of the Lloyd algorithm, updating the given centroids into the newCentroids mat...
NaiveKMeans(const MatType &dataset, MetricType &metric)
Construct the NaiveKMeans object with the given dataset and metric.
size_t DistanceCalculations() const
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
The core includes that mlpack expects; standard C++ includes and Armadillo.