kmeans
A C++ library for k-means
|
Initialize by sampling random observations without replacement. More...
#include <InitializeRandom.hpp>
Public Member Functions | |
InitializeRandom (InitializeRandomOptions options) | |
InitializeRandom ()=default | |
InitializeRandomOptions & | get_options () |
Cluster_ | run (const Matrix_ &data, Cluster_ ncenters, Float_ *centers) const |
Initialize by sampling random observations without replacement.
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. |
|
inline |
options | Options for random initialization. |
|
default |
Default constructor.
|
inline |
run()
.
|
inlinevirtual |
data | A matrix-like object (see MockMatrix ) containing per-observation data. | |
num_centers | Number of cluster centers. | |
[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 output, each column will contain the final centroid locations for each cluster. |
centers
is filled with the new cluster centers. The number of filled centers is returned - this is usually equal to num_centers
, but may not be if, e.g., num_centers
is greater than the number of observations. If the returned value is less than num_centers
, only the first few centers in centers
will be filled. Implements kmeans::Initialize< Matrix_, Cluster_, Float_ >.