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

Wrapper for the implementation of the K-Nearest Neighbors classifier algorithm. More...

#include <KNNClassifier.hpp>

Inheritance diagram for mltk::classifier::KNNClassifier< T, Callable >:
Collaboration diagram for mltk::classifier::KNNClassifier< T, Callable >:

Public Member Functions

 KNNClassifier (size_t _k, std::string _algorithm="brute")
 
 KNNClassifier (Data< T > &_samples, size_t _k, std::string _algorithm="brute")
 
bool train () override
 Function that execute the training phase of a Learner. More...
 
double evaluate (const Point< T > &p, bool raw_value=false) override
 Returns the class of a feature point based on the trained Learner. More...
 
Callable & metric ()
 
void setPrecomputedDistances (metrics::dist::BaseMatrix _distances)
 
metrics::dist::DistanceMatrix< Callable > precomputeDistances (mltk::Data< T > &data, bool diagonal=false, const size_t threads=std::thread::hardware_concurrency())
 
- Public Member Functions inherited from mltk::classifier::PrimalClassifier< double >
 PrimalClassifier (DataPointer< double > samples)
 
 PrimalClassifier (mltk::Data< double > &samples)
 
 PrimalClassifier (const PrimalClassifier< double > &primal_learner)
 
double evaluate (const Point< double > &p, bool raw_value=false) override
 Returns the class of a feature point based on the trained Learner. More...
 
std::string getFormulationString () override
 getFormulationString Returns a string that represents the formulation of the learner (Primal or Dual). More...
 
double getP () const
 GetP Return the value of the p norm. More...
 
double getQ () const
 GetQ Return the value of the q norm. More...
 
void setqNorm (double q)
 setqNorm Set the q norm used by the classifier. (Euclidean norm is the default) More...
 
void setpNorm (double p)
 setpNorm Set the p norm used by the classifier. (Euclidean norm is the default) More...
 
void setFlexible (double flexible)
 Set flexibity of the classifier. More...
 
void setAlphaAprox (double alpha_aprox)
 Set the percentage of the aproximation. More...
 
- Public Member Functions inherited from mltk::classifier::Classifier< T >
 Classifier (DataPointer< T > samples)
 
 Classifier (const Classifier< T > &classifier)
 
virtual double evaluateProbability (const mltk::Point< double > &p)
 
mltk::Point< int > batchEvaluateProbability (const mltk::Data< T > &data)
 
Solution getSolution () const
 getSolution Returns the solution of the classifier. More...
 
SolutiongetSolutionRef ()
 getSolution Returns a reference to the solution of the classifier. More...
 
void setGamma (double gamma)
 Set the gamma (margin) of the classifier. More...
 
void setW (std::vector< double > w)
 setW Set the weights vector of the classifier. More...
 
void setSolution (Solution solution)
 setSolution Set a solution for the classifier. More...
 
- 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::classifier::PrimalClassifier< double >
std::vector< double > w
 Weights vector. More...
 
double q
 Norm used in the classification. (Euclidean Norm is the default) More...
 
double p
 
double flexible
 Flexibility. More...
 
double alpha_aprox
 Percentage of aproximation of the result. More...
 
- Protected Attributes inherited from mltk::classifier::Classifier< T >
bool hasInitialSolution = false
 Inform if there's an initial solution. More...
 
std::vector< Point< T > > svs
 Support vectors points. More...
 
Solution solution
 Classifier solution. More...
 
double gamma = 0
 Classifier margin. More...
 
- Protected Attributes inherited from mltk::Learner< T >
std::shared_ptr< Data< T > > samples
 Samples used in the model training. More...
 
double rate
 Learning rate. More...
 
double start_time
 Initial time. More...
 
double max_time
 Maximum time of training. More...
 
int steps
 Number of steps in the data. More...
 
int ctot
 Number of updates of the weights. More...
 
double EPS
 Max precision. More...
 
double MIN_INC
 Minimun Increment. More...
 
int MAX_IT
 Max number of iterations. More...
 
int MAX_UP
 Max number of updates. More...
 
int MAX_EPOCH
 
int verbose
 Verbose level of the output. More...
 
Timer timer
 Timer used to measure the time elapsed in the execution of a Learner. More...
 
size_t seed
 seed for random operations. More...
 
double pred_prob
 

Detailed Description

template<typename T = double, typename Callable = metrics::dist::Euclidean<T>>
class mltk::classifier::KNNClassifier< T, Callable >

Wrapper for the implementation of the K-Nearest Neighbors classifier algorithm.

Member Function Documentation

◆ evaluate()

template<typename T , typename Callable >
double mltk::classifier::KNNClassifier< 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 >.

◆ train()

template<typename T , typename Callable >
bool mltk::classifier::KNNClassifier< 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: