CRSplineReg.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /**
  2. * @file CRSplineReg.h
  3. * @brief Implementation of Catmull-Rom-Splines for regression purposes
  4. * @author Frank Prüfer
  5. * @date 09/03/2013
  6. */
  7. #ifndef CRSPLINEREGINCLUDE
  8. #define CRSPLINEREGINCLUDE
  9. #include "core/vector/VectorT.h"
  10. #include "core/vector/VVector.h"
  11. #include "core/vector/MatrixT.h"
  12. #include "core/basics/Config.h"
  13. #include "vislearning/regression/regressionbase/RegressionAlgorithm.h"
  14. namespace OBJREC
  15. {
  16. class CRSplineReg : public RegressionAlgorithm
  17. {
  18. protected:
  19. /** smoothness parameter */
  20. double tau;
  21. /** dimension which is used for sorting the data (maybe use something like PCA to determine this variable) */
  22. uint sortDim;
  23. /** set of data points */
  24. NICE::VVector dataSet;
  25. /** set of responses according to dataset */
  26. std::vector<double> labelSet;
  27. public:
  28. /** simple constructor */
  29. CRSplineReg( const NICE::Config *_conf );
  30. /** simple constructor specifying in which dimension data should be sorted*/
  31. CRSplineReg( uint sDim );
  32. /** copy constructor */
  33. CRSplineReg ( const CRSplineReg & src );
  34. /** simple destructor */
  35. virtual ~CRSplineReg();
  36. /** clone function */
  37. CRSplineReg* clone (void) const;
  38. /** predict response using simple vector */
  39. double predict ( const NICE::Vector & x );
  40. /** teach whole set at once */
  41. void teach ( const NICE::VVector & dataSet, const NICE::Vector & labelSet );
  42. /** teach one data point at a time */
  43. void teach ( const NICE::Vector & x, const double & y );
  44. };
  45. } //nameospace
  46. #endif