kmeans
A C++ library for k-means
|
Interface for all k-means refinement algorithms. More...
#include <Refine.hpp>
Public Member Functions | |
virtual Details< typename Matrix_::index_type > | run (const Matrix_ &data, Cluster_ num_centers, Float_ *centers, Cluster_ *clusters) const =0 |
Interface for all k-means refinement algorithms.
Matrix_ | Matrix type for the input data. This should satisfy the MockMatrix contract. |
Cluster_ | Integer type for the cluster assignments. |
Float_ | Floating-point type for the centroids. |
|
pure virtual |
data | A matrix-like object (see MockMatrix ) containing per-observation data. | |
num_centers | Number of cluster centers. | |
[in,out] | centers | Pointer to an array of length equal to the product of num_centers and data.num_dimensions() . This contains a column-major matrix where rows correspond to dimensions and columns correspond to cluster centers. On input, each column should contain the initial centroid location for its cluster. On output, each column will contain the final centroid locations for each cluster. |
[out] | clusters | Pointer to an array of length equal to the number of observations (from data.num_observations() ). On output, this will contain the cluster assignment for each observation. |
centers
and clusters
are filled, and a Details
object is returned containing clustering statistics. If num_centers
is greater than data.num_observations()
, only the first data.num_observations()
columns of the centers
array will be filled. Implemented in kmeans::RefineHartiganWong< Matrix_, Cluster_, Float_ >, kmeans::RefineLloyd< Matrix_, Cluster_, Float_ >, and kmeans::RefineMiniBatch< Matrix_, Cluster_, Float_ >.