RANSACReg.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /**
  2. * @file RANSACReg.h
  3. * @brief Implementation of RANSAC (RANdom SAmple Consensus) for regression purposes
  4. * @author Frank Prüfer
  5. * @date 09/10/2013
  6. */
  7. #ifndef RANSACREGINCLUDE
  8. #define RANSACREGINCLUDE
  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 RANSACReg : public RegressionAlgorithm
  17. {
  18. protected:
  19. /** threshold value for determining when a datum fits a model */
  20. double threshold;
  21. /** mminimum number of data required to fit the model */
  22. uint n;
  23. /** number of iterations performed by the algorithm */
  24. uint iter;
  25. /** vector of model parameters */
  26. std::vector<double> modelParams;
  27. /** set of data points */
  28. NICE::VVector dataSet;
  29. /** set of responses according to dataset */
  30. std::vector<double> labelSet;
  31. public:
  32. /** simple constructor */
  33. RANSACReg ( const NICE::Config *conf );
  34. /** copy constructor */
  35. RANSACReg ( const RANSACReg & src );
  36. /** simple destructor */
  37. virtual ~RANSACReg();
  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. };
  43. } //namespace
  44. #endif