41#include <pcl/ml/dt/decision_tree.h>
42#include <pcl/ml/dt/decision_tree_data_provider.h>
43#include <pcl/ml/feature_handler.h>
44#include <pcl/ml/stats_estimator.h>
51template <
class FeatureType,
73 feature_handler_ = &feature_handler;
84 stats_estimator_ = &stats_estimator;
94 max_tree_depth_ = max_tree_depth;
104 num_of_features_ = num_of_features;
115 num_of_thresholds_ = num_of_threshold;
125 data_set_ = data_set;
135 examples_ = examples;
145 label_data_ = label_data;
155 min_examples_for_split_ = n;
179 NodeType>::Ptr& dtdp)
181 decision_tree_trainer_data_provider_ = dtdp;
191 random_features_at_split_node_ = b;
212 trainDecisionTreeNode(std::vector<FeatureType>& features,
213 std::vector<ExampleIndex>& examples,
214 std::vector<LabelType>& label_data,
215 std::size_t max_depth,
226 createThresholdsUniform(
const std::size_t num_of_thresholds,
227 std::vector<float>& values,
228 std::vector<float>& thresholds);
232 std::size_t max_tree_depth_{15};
234 std::size_t num_of_features_{1000};
236 std::size_t num_of_thresholds_{10};
247 std::vector<LabelType> label_data_{};
249 std::vector<ExampleIndex> examples_{};
252 std::size_t min_examples_for_split_{0u};
254 std::vector<float> thresholds_{};
262 decision_tree_trainer_data_provider_{
nullptr};
265 bool random_features_at_split_node_{
false};
270#include <pcl/ml/impl/dt/decision_tree_trainer.hpp>
Class representing a decision tree.
Trainer for decision trees.
void setRandomFeaturesAtSplitNode(bool b)
Specify if the features are randomly generated at each split node.
void setStatsEstimator(pcl::StatsEstimator< LabelType, NodeType, DataSet, ExampleIndex > &stats_estimator)
Sets the object for estimating the statistics for tree nodes.
void setDecisionTreeDataProvider(typename pcl::DecisionTreeTrainerDataProvider< FeatureType, DataSet, LabelType, ExampleIndex, NodeType >::Ptr &dtdp)
Specify the data provider.
void setMaxTreeDepth(const std::size_t max_tree_depth)
Sets the maximum depth of the learned tree.
void setNumOfThresholds(const std::size_t num_of_threshold)
Sets the number of thresholds tested for finding the optimal decision threshold on the feature respon...
void setFeatureHandler(pcl::FeatureHandler< FeatureType, DataSet, ExampleIndex > &feature_handler)
Sets the feature handler used to create and evaluate features.
void setTrainingDataSet(DataSet &data_set)
Sets the input data set used for training.
void setMinExamplesForSplit(std::size_t n)
Sets the minimum number of examples to continue growing a tree.
virtual ~DecisionTreeTrainer()
Destructor.
void setThresholds(std::vector< float > &thres)
Specify the thresholds to be used when evaluating features.
void setLabelData(std::vector< LabelType > &label_data)
Sets the label data corresponding to the example data.
void setExamples(std::vector< ExampleIndex > &examples)
Example indices that specify the data used for training.
void setNumOfFeatures(const std::size_t num_of_features)
Sets the number of features used to find optimal decision features.
DecisionTreeTrainer()
Constructor.
Utility class interface which is used for creating and evaluating features.
Class interface for gathering statistics for decision tree learning.
Define standard C methods and C++ classes that are common to all methods.