FPCFullSearch.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /**
  2. * @file FPCFullSearch.h
  3. * @brief optimal feature search like performed by boosting
  4. * @author Erik Rodner
  5. * @date 11/21/2008
  6. */
  7. #ifndef FPCFullSearchINCLUDE
  8. #define FPCFullSearchINCLUDE
  9. #include "core/vector/VectorT.h"
  10. #include "core/vector/MatrixT.h"
  11. #include <set>
  12. #include "core/basics/Config.h"
  13. #include "vislearning/classifier/classifierbase/FeaturePoolClassifier.h"
  14. namespace OBJREC {
  15. /** @brief optimal feature search like performed by boosting
  16. (use this class in conjunction with FPCBoosting as a weak classifier type) */
  17. class FPCFullSearch : public FeaturePoolClassifier
  18. {
  19. protected:
  20. /** stored config for persistence routines */
  21. const NICE::Config *conf;
  22. double alpha;
  23. double beta;
  24. bool use_regression;
  25. public:
  26. /** @{ */
  27. /** hypotheses \f$h(x) = sign( p \cdot f(x) < p \cdot \f$
  28. */
  29. /** @brief single feature used for the classification decision \f$ f(x) \f$ */
  30. Feature *f;
  31. /** @brief corresponding feature threshold \f$ T \f$ */
  32. double threshold;
  33. /** @brief parity of the comparision \f$ p \f$ */
  34. int parity;
  35. /** @} */
  36. public:
  37. /** DEBUG */
  38. double last_error;
  39. /** simple constructor */
  40. FPCFullSearch( const NICE::Config *conf );
  41. /** simple destructor */
  42. virtual ~FPCFullSearch();
  43. ClassificationResult classify ( Example & pe );
  44. void train ( FeaturePool & fp, Examples & examples );
  45. FPCFullSearch *clone () const;
  46. void restore (std::istream & is, int format);
  47. void store (std::ostream & os, int format) const;
  48. void clear();
  49. const Feature *getStump ( double & threshold, double & parity ) const;
  50. };
  51. } // namespace
  52. #endif