14 #ifndef __MLPACK_METHODS_KMEANS_KMEANS_HPP 15 #define __MLPACK_METHODS_KMEANS_KMEANS_HPP 70 typename InitialPartitionPolicy = RandomPartition,
71 typename EmptyClusterPolicy = MaxVarianceNewCluster,
72 template<
class,
class>
class LloydStepType = NaiveKMeans,
73 typename MatType = arma::mat>
91 const MetricType
metric = MetricType(),
92 const InitialPartitionPolicy
partitioner = InitialPartitionPolicy(),
109 void Cluster(
const MatType& data,
110 const size_t clusters,
111 arma::Row<size_t>& assignments,
112 const bool initialGuess =
false);
127 void Cluster(
const MatType& data,
128 const size_t clusters,
129 arma::mat& centroids,
130 const bool initialGuess =
false);
152 void Cluster(
const MatType& data,
153 const size_t clusters,
154 arma::Row<size_t>& assignments,
155 arma::mat& centroids,
156 const bool initialAssignmentGuess =
false,
157 const bool initialCentroidGuess =
false);
181 template<
typename Archive>
182 void Serialize(Archive& ar,
const unsigned int version);
199 #include "kmeans_impl.hpp" 201 #endif // __MLPACK_METHODS_KMEANS_KMEANS_HPP const InitialPartitionPolicy & Partitioner() const
Get the initial partitioning policy.
void Cluster(const MatType &data, const size_t clusters, arma::Row< size_t > &assignments, const bool initialGuess=false)
Perform k-means clustering on the data, returning a list of cluster assignments.
Linear algebra utility functions, generally performed on matrices or vectors.
LMetric< 2, true > EuclideanDistance
The Euclidean (L2) distance.
InitialPartitionPolicy partitioner
Instantiated initial partitioning policy.
const MetricType & Metric() const
Get the distance metric.
MetricType & Metric()
Modify the distance metric.
InitialPartitionPolicy & Partitioner()
Modify the initial partitioning policy.
MetricType metric
Instantiated distance metric.
EmptyClusterPolicy & EmptyClusterAction()
Modify the empty cluster policy.
Include all of the base components required to write MLPACK methods, and the main MLPACK Doxygen docu...
size_t & MaxIterations()
Set the maximum number of iterations.
void Serialize(Archive &ar, const unsigned int version)
Serialize the k-means object.
const EmptyClusterPolicy & EmptyClusterAction() const
Get the empty cluster policy.
EmptyClusterPolicy emptyClusterAction
Instantiated empty cluster policy.
size_t maxIterations
Maximum number of iterations before giving up.
This class implements K-Means clustering, using a variety of possible implementations of Lloyd's algo...
KMeans(const size_t maxIterations=1000, const MetricType metric=MetricType(), const InitialPartitionPolicy partitioner=InitialPartitionPolicy(), const EmptyClusterPolicy emptyClusterAction=EmptyClusterPolicy())
Create a K-Means object and (optionally) set the parameters which K-Means will be run with...
size_t MaxIterations() const
Get the maximum number of iterations.