Implements k-Nearest Neighbor classifier. More...
#include <classifier_knn.hpp>
Classes | |
class | Neighbour |
Holds information on distance and data-class membership of neighbors processed in Classifier_kNN. More... | |
Public Types | |
typedef Classifier< RETURNTYPE, DIMTYPE, SUBSET, DATAACCESSOR > | parent |
typedef boost::shared_ptr < DATAACCESSOR > | PDataAccessor |
typedef boost::shared_ptr< SUBSET > | PSubset |
typedef DATAACCESSOR::PPattern | PPattern |
Public Member Functions | |
void | set_k (const DIMTYPE k) |
DIMTYPE | get_k () const |
virtual bool | classify (DIMTYPE &cls, const PPattern &pattern) |
classifies pattern, returns the respective class index | |
virtual bool | train (const PDataAccessor da, const PSubset sub) |
learns from designated training part of data | |
virtual bool | test (RETURNTYPE &result, const PDataAccessor da) |
estimates accuracy using designated test data | |
Classifier_kNN * | clone () const |
Classifier_kNN * | sharing_clone () const |
Classifier_kNN * | stateless_clone () const |
virtual std::ostream & | print (std::ostream &os) const |
Protected Member Functions | |
void | sort_in (const RETURNTYPE value, const DIMTYPE cls) |
DIMTYPE | get_most_freq_cls () |
Protected Attributes | |
DIMTYPE | _k |
DIMTYPE | _k_enough |
DIMTYPE | _nns_max_size |
std::list< Neighbour >::iterator | iter |
std::list< Neighbour > | _nns |
std::vector< DIMTYPE > | cls_freqs |
boost::scoped_ptr< DISTANCE > | _distance |
PDataAccessor | _da_train |
Private Member Functions | |
Classifier_kNN (const Classifier_kNN &cknn) |
Implements k-Nearest Neighbor classifier.
demo10.cpp, demo11.cpp, demo11t.cpp, demo20.cpp, demo21.cpp, demo22.cpp, demo24.cpp, demo24t.cpp, demo26.cpp, demo34.cpp, demo40.cpp, demo40t.cpp, demo41.cpp, demo42.cpp, demo43.cpp, demo50.cpp, demo51.cpp, demo52t.cpp, demo54.cpp, demo55.cpp, demo56.cpp, demo60.cpp, demo61.cpp, and demo63.cpp.
Classifier_kNN< RETURNTYPE, DATATYPE, IDXTYPE, DIMTYPE, SUBSET, DATAACCESSOR, DISTANCE > * FST::Classifier_kNN< RETURNTYPE, DATATYPE, IDXTYPE, DIMTYPE, SUBSET, DATAACCESSOR, DISTANCE >::clone | ( | ) | const [inline, virtual] |
create 1:1 independent clone of the current object
Implements FST::Clonable.
Classifier_kNN* FST::Classifier_kNN< RETURNTYPE, DATATYPE, IDXTYPE, DIMTYPE, SUBSET, DATAACCESSOR, DISTANCE >::sharing_clone | ( | ) | const [inline, virtual] |
create equivalent clone of the current object, parmitting read-only access to structures in the source object (allows referencing instead of copying of large memory structures). may be faster and save space but requires more caution with respect to concurrency Use example: Data_Accessor memory data representation cloning
Implements FST::Clonable.
Classifier_kNN* FST::Classifier_kNN< RETURNTYPE, DATATYPE, IDXTYPE, DIMTYPE, SUBSET, DATAACCESSOR, DISTANCE >::stateless_clone | ( | ) | const [inline, virtual] |
create clone of the current object, ignoring internal temporary structures to save speed. Does not replicate exact object state. The clone must be used carefully in a way that ensures internal structure re-initialization Use example: Data_Splitter cloning or Classifier_SVM cloning due to inability to clone external structures defined in LibSVM
Implements FST::Clonable.