UFJF - Machine Learning Toolkit  0.51.8
mltk::clusterer::KMeans< T, Callable > Class Template Reference

Wrapper for the implementation of the K-Means clustering algorithm. More...

#include <KMeans.hpp>

Inheritance diagram for mltk::clusterer::KMeans< T, Callable >:
Collaboration diagram for mltk::clusterer::KMeans< T, Callable >:

Public Member Functions

 KMeans (const Data< T > &samples, size_t k, std::string initialization="random", size_t seed=0, int verbose=0)
 
bool train () override
 Function that execute the training phase of a Learner. More...
 
double assign_clusters (const std::vector< mltk::PointPointer< T >> &points)
 
double clusters_variance (const Clusters &clusters)
 
void compute_centers ()
 
double evaluate (const Point< T > &p, bool raw_value=false) override
 Returns the class of a feature point based on the trained Learner. More...
 
std::vector< mltk::Point< size_t > > clusters () override
 
std::string getFormulationString () override
 getFormulationString Returns a string that represents the formulation of the learner (Primal or Dual). More...
 
- Public Member Functions inherited from mltk::clusterer::Clusterer< double >
 Clusterer (DataPointer< double > samples=nullptr, size_t clusters=0)
 
std::vector< mltk::Point< double > > centers ()
 
- Public Member Functions inherited from mltk::Learner< T >
 Learner (DataPointer< T > _samples)
 
 Learner (const Learner< T > &learner)
 
virtual mltk::Point< double > batchEvaluate (const Data< T > &data)
 evaluate a batch of points. More...
 
auto getSamples ()
 Get the Data used by the learner. More...
 
double getElapsedTime () const
 Get the elapsed time in the training phase of the Learner. More...
 
int getCtot () const
 Get the total number of updates of the Learner. More...
 
int getSteps () const
 getSteps Returns the number of steps through the data by the Learner. More...
 
int getUpdates () const
 getUpdates Returns the number of updates needed to get to the the solution. More...
 
double getMaxTime () const
 getMaxTime Returns the maximum running time in the training phase of the Learner. More...
 
double getPredictionProbability () const
 Get the probability of the last prediction. More...
 
void setSeed (const size_t _seed)
 Set the seed to be used by the learner. More...
 
virtual void setSamples (const Data< T > &data)
 setSamples Set the samples used by the Learner. More...
 
virtual void setSamples (DataPointer< T > data)
 setSamples Set the samples used by the Learner. More...
 
void setTimer (Timer _timer)
 setTimer Set the timer used by the Learner. More...
 
void setSteps (int _steps)
 Set the partial number of steps used in the training phase of the Learner. More...
 
void setCtot (int _ctot)
 Set the partial number of updates of the Learner. More...
 
void setVerbose (int _verbose)
 Set the level of verbose. More...
 
void setStartTime (double stime)
 setStartTime Set the initial time of the Learner. More...
 
void setMaxTime (double maxtime)
 Set the max time of execution. More...
 
void setEPS (double eps)
 setEPS Set the precision of the Learner. More...
 
void setMaxIterations (int max_it)
 setMaxIterations Set the max number of iterations of the Learner. More...
 
void setMaxEpochs (int MAX_EPOCHS)
 Set the max number of epochs for the learner training. More...
 
void setMaxUpdates (int max_up)
 setMaxIterations Set the max number of updates of the Learner. More...
 
void setLearningRate (double learning_rate)
 Set the learning rate of the Learner. More...
 

Additional Inherited Members

- Protected Attributes inherited from mltk::clusterer::Clusterer< double >
metrics::dist::Euclidean< double > dist_function
 Function used to compute the metrics between two points. More...
 
size_t n_clusters
 Number of clusters for the cluster method. More...
 
std::vector< mltk::Point< double > > m_centers
 Vector with the centers of the clusters. More...
 
std::vector< mltk::Point< size_t > > m_clusters
 Clusters of points. More...
 
- Protected Attributes inherited from mltk::Learner< T >
std::shared_ptr< Data< T > > samples
 Samples used in the model training. More...
 
double rate = 0.5f
 Learning rate. More...
 
double start_time = 0.0f
 Initial time. More...
 
double max_time = 110
 Maximum time of training. More...
 
int steps = 0
 Number of steps in the data. More...
 
int ctot = 0
 Number of updates of the weights. More...
 
double EPS = 0.0000001
 Max precision. More...
 
double MIN_INC = 1.001
 Minimun Increment. More...
 
int MAX_IT = 1E9
 Max number of iterations. More...
 
int MAX_UP = 1E9
 Max number of updates. More...
 
int MAX_EPOCH = 1E9
 
int verbose = 1
 Verbose level of the output. More...
 
Timer timer = Timer()
 Timer used to measure the time elapsed in the execution of a Learner. More...
 
size_t seed = 0
 seed for random operations. More...
 
double pred_prob = 1.0
 

Detailed Description

template<typename T = double, typename Callable = metrics::dist::Euclidean<T>>
class mltk::clusterer::KMeans< T, Callable >

Wrapper for the implementation of the K-Means clustering algorithm.

Member Function Documentation

◆ evaluate()

template<typename T , typename Callable >
double mltk::clusterer::KMeans< T, Callable >::evaluate ( const Point< T > &  p,
bool  raw_value = false 
)
overridevirtual

Returns the class of a feature point based on the trained Learner.

Parameters
pPoint to be evaluated.
Returns
Prediction made by the learner.

Implements mltk::Learner< T >.

◆ getFormulationString()

template<typename T , typename Callable >
std::string mltk::clusterer::KMeans< T, Callable >::getFormulationString ( )
overridevirtual

getFormulationString Returns a string that represents the formulation of the learner (Primal or Dual).

Returns
std::string

Implements mltk::Learner< T >.

◆ train()

template<typename T , typename Callable >
bool mltk::clusterer::KMeans< T, Callable >::train ( )
overridevirtual

Function that execute the training phase of a Learner.

Returns
void

Implements mltk::Learner< T >.


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