30 #ifndef LRANDOMTREE_H_ 31 #define LRANDOMTREE_H_ 41 #include <opencv/cxcore.h> 65 bool test(
const float* f)
const;
66 float eval(
const float* f)
const;
84 unsigned int GetMaxDepth()
const;
87 int predict(
const float *f)
const;
91 const float *f,
int cl, std::map<int, double>& proximityCounter)
const;
94 bool saveTree(
const char *filename)
const;
95 bool saveTree(std::stringstream &out)
const;
99 float **TrainX,
int *TrainL, std::vector<int>& TrainSet,
int m,
100 int n,
int maxLabel,
float *classWeight, CvRNG *pRNG,
int m_try,
101 int max_depth,
int min_samples = 1,
int num_grid = 20);
103 int getMaxLabel()
const;
104 void setMaxLabel(
int _maxLabel);
109 void grow(
const std::vector<int>& TrainSet,
int& node,
unsigned int depth);
112 const std::vector<int>& TrainSet,
Node& test,
113 std::vector<int> & SetA, std::vector<int>& SetB);
115 void generateTest(
Node& test);
118 std::vector<IntIndex> & valSet,
const Node& test,
119 const std::vector<int>& TrainSet);
122 std::vector<int>& SetA, std::vector<int>& SetB,
123 const std::vector<int>& TrainSet,
const std::vector<IntIndex>& valSet,
126 float measureGini(
const std::vector<int>& Set,
float& pt);
128 void makeLeaf(
const std::vector<int>& TrainSet,
int& node);
135 std::vector<Node*> _treetable;
137 std::vector<LeafNode*> _leaves;
143 unsigned int _min_samples;
146 unsigned int _max_depth;
149 unsigned int _num_nodes;
152 unsigned int _num_leaf;
155 unsigned int _num_grid;
bool operator<(const IntIndex &a) const