mlpack
master
|
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... | |
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.
|
inline |
Default constructor required by EmptyClusterPolicy.
Definition at line 30 of file max_variance_new_cluster.hpp.
References EmptyCluster(), iteration, and Serialize().
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.
MatType | Type of data (arma::mat or arma::sp_mat). |
data | Dataset on which clustering is being performed. |
emptyCluster | Index of cluster which is empty. |
oldCentroids | Centroids of each cluster (one per column), at the start of the iteration. |
newCentroids | Centroids of each cluster (one per column), at the end of the iteration. This will be modified! |
clusterCounts | Number of points in each cluster. |
assignments | Cluster assignments of each point. |
Referenced by MaxVarianceNewCluster().
|
private |
Called when we are on a new iteration.
void mlpack::kmeans::MaxVarianceNewCluster::Serialize | ( | Archive & | ar, |
const unsigned int | version | ||
) |
Serialize the object.
Referenced by MaxVarianceNewCluster().
|
private |
Cached assignments for each point.
Definition at line 67 of file max_variance_new_cluster.hpp.
|
private |
Index of iteration for which variance is cached.
Definition at line 63 of file max_variance_new_cluster.hpp.
Referenced by MaxVarianceNewCluster().
|
private |
Cached variances for each cluster.
Definition at line 65 of file max_variance_new_cluster.hpp.