mlpack  master
Public Member Functions | Private Member Functions | Private Attributes | List of all members
mlpack::kmeans::MaxVarianceNewCluster Class Reference

When an empty cluster is detected, this class takes the point furthest from the centroid of the cluster with maximum variance as a new cluster. More...

Public Member Functions

 MaxVarianceNewCluster ()
 Default constructor required by EmptyClusterPolicy. More...
 
template<typename MetricType , typename MatType >
size_t EmptyCluster (const MatType &data, const size_t emptyCluster, const arma::mat &oldCentroids, arma::mat &newCentroids, arma::Col< size_t > &clusterCounts, MetricType &metric, const size_t iteration)
 Take the point furthest from the centroid of the cluster with maximum variance to be a new cluster. More...
 
template<typename Archive >
void Serialize (Archive &ar, const unsigned int version)
 Serialize the object. More...
 

Private Member Functions

template<typename MetricType , typename MatType >
void Precalculate (const MatType &data, const arma::mat &oldCentroids, arma::Col< size_t > &clusterCounts, MetricType &metric)
 Called when we are on a new iteration. More...
 

Private Attributes

arma::Row< size_t > assignments
 Cached assignments for each point. More...
 
size_t iteration
 Index of iteration for which variance is cached. More...
 
arma::vec variances
 Cached variances for each cluster. More...
 

Detailed Description

When an empty cluster is detected, this class takes the point furthest from the centroid of the cluster with maximum variance as a new cluster.

Definition at line 26 of file max_variance_new_cluster.hpp.

Constructor & Destructor Documentation

mlpack::kmeans::MaxVarianceNewCluster::MaxVarianceNewCluster ( )
inline

Default constructor required by EmptyClusterPolicy.

Definition at line 30 of file max_variance_new_cluster.hpp.

References EmptyCluster(), iteration, and Serialize().

Member Function Documentation

template<typename MetricType , typename MatType >
size_t mlpack::kmeans::MaxVarianceNewCluster::EmptyCluster ( const MatType &  data,
const size_t  emptyCluster,
const arma::mat &  oldCentroids,
arma::mat &  newCentroids,
arma::Col< size_t > &  clusterCounts,
MetricType &  metric,
const size_t  iteration 
)

Take the point furthest from the centroid of the cluster with maximum variance to be a new cluster.

Template Parameters
MatTypeType of data (arma::mat or arma::sp_mat).
Parameters
dataDataset on which clustering is being performed.
emptyClusterIndex of cluster which is empty.
oldCentroidsCentroids of each cluster (one per column), at the start of the iteration.
newCentroidsCentroids of each cluster (one per column), at the end of the iteration. This will be modified!
clusterCountsNumber of points in each cluster.
assignmentsCluster assignments of each point.
Returns
Number of points changed.

Referenced by MaxVarianceNewCluster().

template<typename MetricType , typename MatType >
void mlpack::kmeans::MaxVarianceNewCluster::Precalculate ( const MatType &  data,
const arma::mat &  oldCentroids,
arma::Col< size_t > &  clusterCounts,
MetricType &  metric 
)
private

Called when we are on a new iteration.

template<typename Archive >
void mlpack::kmeans::MaxVarianceNewCluster::Serialize ( Archive &  ar,
const unsigned int  version 
)

Serialize the object.

Referenced by MaxVarianceNewCluster().

Member Data Documentation

arma::Row<size_t> mlpack::kmeans::MaxVarianceNewCluster::assignments
private

Cached assignments for each point.

Definition at line 67 of file max_variance_new_cluster.hpp.

size_t mlpack::kmeans::MaxVarianceNewCluster::iteration
private

Index of iteration for which variance is cached.

Definition at line 63 of file max_variance_new_cluster.hpp.

Referenced by MaxVarianceNewCluster().

arma::vec mlpack::kmeans::MaxVarianceNewCluster::variances
private

Cached variances for each cluster.

Definition at line 65 of file max_variance_new_cluster.hpp.


The documentation for this class was generated from the following file: