CKNN Class Reference


Detailed Description

Class KNN, an implementation of the standard k-nearest neigbor classifier.

An example is classified to belong to the class of which the majority of the k closest examples belong to.

To avoid ties, k should be an odd number. To define how close examples are k-NN requires a CDistance object to work with (e.g., CEuclideanDistance ).

Note that k-NN has zero training time but classification times increase dramatically with the number of examples. Also note that k-NN is capable of multi-class-classification.

Definition at line 37 of file KNN.h.

Inheritance diagram for CKNN:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 CKNN ()
 CKNN (int32_t k, CDistance *d, CLabels *trainlab)
virtual ~CKNN ()
virtual EClassifierType get_classifier_type ()
virtual bool train ()
virtual CLabelsclassify (CLabels *output=NULL)
virtual float64_t classify_example (int32_t vec_idx)
 get output for example "vec_idx"
virtual bool load (FILE *srcfile)
virtual bool save (FILE *dstfile)
void set_k (float64_t p_k)
float64_t get_k ()
virtual const char * get_name () const

Protected Attributes

float64_t k
 the k parameter in KNN
int32_t num_classes
 number of classes (i.e. number of values labels can take)
int32_t min_label
 smallest label, i.e. -1
int32_t num_train_labels
 number of train examples
int32_t * train_labels
 the actual trainlabels

Constructor & Destructor Documentation

CKNN::CKNN (  ) 

default constructor

Definition at line 17 of file KNN.cpp.

CKNN::CKNN ( int32_t  k,
CDistance d,
CLabels trainlab 
)

constructor

Parameters:
k k
d distance
trainlab labels for training

Definition at line 22 of file KNN.cpp.

CKNN::~CKNN (  )  [virtual]

Definition at line 31 of file KNN.cpp.


Member Function Documentation

CLabels * CKNN::classify ( CLabels output = NULL  )  [virtual]

classify all examples

Parameters:
output resulting labels
Returns:
resulting labels

histogram of classes and returned output

Reimplemented from CClassifier.

Definition at line 64 of file KNN.cpp.

virtual float64_t CKNN::classify_example ( int32_t  vec_idx  )  [virtual]

get output for example "vec_idx"

Reimplemented from CClassifier.

Definition at line 73 of file KNN.h.

virtual EClassifierType CKNN::get_classifier_type (  )  [virtual]

get classifier type

Returns:
classifier type KNN

Reimplemented from CClassifier.

Definition at line 56 of file KNN.h.

float64_t CKNN::get_k (  ) 

get k

Returns:
k

Definition at line 107 of file KNN.h.

virtual const char* CKNN::get_name (  )  const [virtual]
Returns:
object name

Implements CSGObject.

Definition at line 113 of file KNN.h.

bool CKNN::load ( FILE *  srcfile  )  [virtual]

load from file

Parameters:
srcfile file to load from
Returns:
if loading was successful

Reimplemented from CClassifier.

Definition at line 139 of file KNN.cpp.

bool CKNN::save ( FILE *  dstfile  )  [virtual]

save to file

Parameters:
dstfile file to save to
Returns:
if saving was successful

Reimplemented from CClassifier.

Definition at line 144 of file KNN.cpp.

void CKNN::set_k ( float64_t  p_k  ) 

set k

Parameters:
p_k new k

Definition at line 97 of file KNN.h.

bool CKNN::train (  )  [virtual]

train classifier

Returns:
if training was successful

Reimplemented from CClassifier.

Definition at line 36 of file KNN.cpp.


Member Data Documentation

float64_t CKNN::k [protected]

the k parameter in KNN

Definition at line 117 of file KNN.h.

int32_t CKNN::min_label [protected]

smallest label, i.e. -1

Definition at line 123 of file KNN.h.

int32_t CKNN::num_classes [protected]

number of classes (i.e. number of values labels can take)

Definition at line 120 of file KNN.h.

int32_t CKNN::num_train_labels [protected]

number of train examples

Definition at line 126 of file KNN.h.

int32_t* CKNN::train_labels [protected]

the actual trainlabels

Definition at line 129 of file KNN.h.


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

SHOGUN Machine Learning Toolbox - Documentation