RapidLib  v0.1.2
A simple library for interactive machine learning
knnClassification.h
Go to the documentation of this file.
1 #ifndef knnClassification_h
2 #define knnClassification_h
3 
4 #include <vector>
5 #include "baseModel.h"
6 
7 #ifndef EMSCRIPTEN
8 #include "json.h"
9 #endif
10 
12 class knnClassification : public baseModel {
13 
14 public:
21  knnClassification(const int &num_inputs,
22  const std::vector<int> &which_inputs,
23  const std::vector<trainingExample> &trainingSet,
24  const int &k);
26 
31  void addNeighbour(const int &classNum, const std::vector<double> &features);
32 
37  double process(const std::vector<double> &inputVector);
38 
44  void train(const std::vector<trainingExample> &trainingSet);
45 
46  int getNumInputs();
47  std::vector<int> getWhichInputs();
48 
49 #ifndef EMSCRIPTEN
50  void getJSONDescription(Json::Value &currentModel);
51 #endif
52 
53 private:
54  int numInputs;
55  std::vector<int> whichInputs;
56  std::vector<trainingExample> neighbours;
57  int numNeighbours; //aka "k"
58  std::pair<int, double>* nearestNeighbours;
59 };
60 
61 #endif
62 
~knnClassification()
Definition: knnClassification.cpp:19
Definition: knnClassification.h:12
knnClassification(const int &num_inputs, const std::vector< int > &which_inputs, const std::vector< trainingExample > &trainingSet, const int &k)
Definition: knnClassification.cpp:10
int getNumInputs()
Definition: knnClassification.cpp:23
void addNeighbour(const int &classNum, const std::vector< double > &features)
Definition: knnClassification.cpp:31
Definition: baseModel.h:12
void train(const std::vector< trainingExample > &trainingSet)
Definition: knnClassification.cpp:38
void getJSONDescription(Json::Value &currentModel)
Definition: knnClassification.cpp:111
std::vector< int > getWhichInputs()
Definition: knnClassification.cpp:27
double process(const std::vector< double > &inputVector)
Definition: knnClassification.cpp:43