RapidLib  v2.2.0
A simple library for interactive machine learning
seriesClassification.h
Go to the documentation of this file.
1 
10 #ifndef SERIESCLASSIFICATION_H
11 #define SERIESCLASSIFICATION_H
12 
13 #include <vector>
14 #include <string>
15 #include <map>
16 #include "fastDTW.h"
17 #include "trainingExample.h"
18 
19 #include "rapidlib_export.h"
20 
26 template<typename T>
28 {
29 public:
30 
32  RAPIDLIB_EXPORT seriesClassificationTemplate();
33  RAPIDLIB_EXPORT ~seriesClassificationTemplate();
34 
38  RAPIDLIB_EXPORT bool train(const std::vector<trainingSeriesTemplate<T> > &seriesSet);
39 
41  RAPIDLIB_EXPORT void reset();
42 
47  RAPIDLIB_EXPORT std::string run(const std::vector<std::vector<T> > &inputSeries);
48 
54  RAPIDLIB_EXPORT T run(const std::vector<std::vector<T> >& inputSeries, std::string label);
55 
60  RAPIDLIB_EXPORT std::string runParallel(const std::vector<std::vector<T> >& inputSeries);
61 
67  RAPIDLIB_EXPORT T runParallel(const std::vector<std::vector<T> > &inputSeries, std::string label);
68 
73  RAPIDLIB_EXPORT std::string runContinuous(const std::vector<T> &inputVector);
74 
78  RAPIDLIB_EXPORT std::vector<T> getCosts() const;
79 
83  RAPIDLIB_EXPORT std::size_t getMinLength() const;
84 
89  RAPIDLIB_EXPORT std::size_t getMinLength(std::string label) const;
90 
94  RAPIDLIB_EXPORT std::size_t getMaxLength() const;
95 
100  RAPIDLIB_EXPORT std::size_t getMaxLength(std::string label) const;
101 
103  template<typename TT>
104  struct minMax {
105  TT min;
106  TT max;
107  };
108 
113  RAPIDLIB_EXPORT minMax<T> calculateCosts(std::string label) const;
114 
120  RAPIDLIB_EXPORT minMax<T> calculateCosts(std::string label1, std::string label2) const;
121 
122 private:
123  std::vector<trainingSeriesTemplate<T> > allTrainingSeries;
124  size_t vectorLength;
125  std::vector<T> allCosts;
126  size_t maxLength;
127  size_t minLength;
128  std::map<std::string, minMax<size_t> > lengthsPerLabel;
129  bool isTraining { false };
130 
131  std::vector<std::vector<T> > seriesBuffer;
132  int hopSize {1};
133  int counter {};
134 
135  size_t findClosestSeries() const;
136  void runThread(const std::vector<std::vector<T>> &inputSeries, std::size_t i);
137 };
138 
139 namespace rapidLib
140 {
141 //This is here to keep the old API working
144 }
145 
146 #endif
Definition: seriesClassification.h:28
RAPIDLIB_EXPORT void reset()
Definition: seriesClassification.cpp:85
RAPIDLIB_EXPORT std::vector< T > getCosts() const
Definition: seriesClassification.cpp:260
RAPIDLIB_EXPORT minMax< T > calculateCosts(std::string label) const
Definition: seriesClassification.cpp:296
RAPIDLIB_EXPORT std::string run(const std::vector< std::vector< T > > &inputSeries)
RAPIDLIB_EXPORT std::string runContinuous(const std::vector< T > &inputVector)
Definition: seriesClassification.cpp:241
RAPIDLIB_EXPORT std::string runParallel(const std::vector< std::vector< T > > &inputSeries)
Definition: seriesClassification.cpp:158
RAPIDLIB_EXPORT std::size_t getMaxLength() const
Definition: seriesClassification.cpp:281
RAPIDLIB_EXPORT seriesClassificationTemplate()
Definition: seriesClassification.cpp:25
RAPIDLIB_EXPORT ~seriesClassificationTemplate()
Definition: seriesClassification.cpp:28
RAPIDLIB_EXPORT std::size_t getMinLength() const
Definition: seriesClassification.cpp:266
RAPIDLIB_EXPORT bool train(const std::vector< trainingSeriesTemplate< T > > &seriesSet)
Definition: seriesClassification.cpp:31
Definition: classification.h:76
Definition: seriesClassification.h:104
TT max
Definition: seriesClassification.h:106
TT min
Definition: seriesClassification.h:105
Definition: trainingExample.h:34