Rapid-Mix API  v2.2.0
A simple library for machine learning & signal processing
trainingData.h
Go to the documentation of this file.
1 
11 #ifndef trainingData_h
12 #define trainingData_h
13 
14 #include <vector>
15 #include <string>
16 #include <unordered_map>
17 
18 #include "rapidMix.h"
19 #include "json.h"
20 
21 namespace rapidmix {
22 
24  class trainingData {
25 
26  public:
27 
28  trainingData();
29 
30  struct element{
31  uint32_t uniqueId; //MZ: Does this scope of this id need to extend beyond this instantiation?
32  std::vector<double> input;
33  std::vector<double> output;
34  double timeStamp;
35  };
36 
37  struct phrase {
38  uint32_t uniqueId;
39  std::string label; //TODO: Need to work this with templates
40  std::vector<std::string> columnNames;
41  std::vector<element> elements;
42  };
43 
44  std::vector<phrase> trainingSet;
45 
47  uint32_t startRecording(); //FIXME: this should go away. -MZ
48 
50  uint32_t startRecording(const std::string &label);
51 
54  uint32_t addElement(const std::vector<double> &input, const std::vector<double> &output);
55 
58  uint32_t addElement(const std::vector<double> &input);
59 
60  void stopRecording();
61 
63  uint32_t recordSingleElement(const std::string &label, const std::vector<double> &input);
64 
66  uint32_t recordSingleElement(const std::vector<double> &input, const std::vector<double> &output);
67 
69  uint32_t recordSingleElement(const std::string &label, const std::vector<double> &input, const std::vector<double> &output);
70 
71  std::vector<std::string> getColumnNames();
72  void setColumnNames(const std::vector<std::string> &columnNames);
73 
74 
76  std::string getJSON();
78  void writeJSON(const std::string &filepath);
80  bool putJSON(const std::string &jsonMessage);
82  bool readJSON(const std::string &filepath);
83 
84  private:
85  int targetPhrase;
86  uint32_t currentId;
87 
88  //* Returns and increments current id */
89  uint32_t assignCurrentId();
90 
91  Json::Value parse2json();
92  void json2trainingSet(const Json::Value &newTrainingData);
93 
94  };
95 
96 }
97 
98 #endif
std::vector< std::string > columnNames
Definition: trainingData.h:40
uint32_t addElement(const std::vector< double > &input, const std::vector< double > &output)
Definition: trainingData.cpp:39
Definition: trainingData.h:37
std::string label
Definition: trainingData.h:39
void stopRecording()
Definition: trainingData.cpp:59
void setColumnNames(const std::vector< std::string > &columnNames)
Definition: trainingData.cpp:88
Definition: machineLearning.cpp:11
bool readJSON(const std::string &filepath)
Definition: trainingData.cpp:193
uint32_t uniqueId
Definition: trainingData.h:38
std::vector< double > output
Definition: trainingData.h:33
std::vector< phrase > trainingSet
Definition: trainingData.h:44
uint32_t recordSingleElement(const std::string &label, const std::vector< double > &input)
Definition: trainingData.cpp:63
Definition: trainingData.h:24
uint32_t startRecording()
Definition: trainingData.cpp:24
uint32_t uniqueId
Definition: trainingData.h:31
void writeJSON(const std::string &filepath)
Definition: trainingData.cpp:146
std::vector< element > elements
Definition: trainingData.h:41
Definition: trainingData.h:30
bool putJSON(const std::string &jsonMessage)
Definition: trainingData.cpp:182
trainingData()
Definition: trainingData.cpp:13
std::vector< std::string > getColumnNames()
Definition: trainingData.cpp:84
std::string getJSON()
Definition: trainingData.cpp:141
double timeStamp
Definition: trainingData.h:34
std::vector< double > input
Definition: trainingData.h:32