123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /**
- * @file RTBRandom.h
- * @brief random regression tree
- * @author Sven Sickert
- * @date 06/19/2013
- */
- #ifndef RTBRANDOMINCLUDE
- #define RTBRANDOMINCLUDE
- #include <vector>
- #include "core/vector/VectorT.h"
- #include "core/vector/VVector.h"
- #include "core/basics/Config.h"
- #include "RegressionTreeBuilder.h"
- namespace OBJREC {
- /** random regression tree */
- class RTBRandom : public RegressionTreeBuilder
- {
-
- protected:
- int random_split_tests;
- int random_features;
- int max_depth;
- int min_examples;
- double minimum_error_reduction;
-
- int random_split_mode;
-
- /** save indices in leaves */
- bool save_indices;
- enum {
- RANDOM_SPLIT_INDEX = 0,
- RANDOM_SPLIT_UNIFORM
- };
-
- RegressionNode *buildRecursive ( const NICE::VVector & x,
- const NICE::Vector & y,
- std::vector<int> & selection,
- int depth);
- bool errorReductionLeftRight ( const std::vector< std::pair< double, int > > values,
- const NICE::Vector & y,
- double threshold,
- double & error_left,
- double & error_right,
- int & count_left,
- int & count_right );
- public:
-
- /** simple constructor */
- RTBRandom( const NICE::Config *conf, std::string section = "RTBRandom" );
-
- /** simple destructor */
- virtual ~RTBRandom();
-
- RegressionNode *build ( const NICE::VVector & x,
- const NICE::Vector & y );
-
- };
-
-
- } // namespace
- #endif
|