12 #ifndef MLPACK_METHODS_DECISION_TREE_RANDOM_BINARY_NUMERIC_SPLIT_HPP 13 #define MLPACK_METHODS_DECISION_TREE_RANDOM_BINARY_NUMERIC_SPLIT_HPP 27 template<
typename FitnessFunction>
78 template<
bool UseWeights,
typename VecType,
typename WeightVecType>
80 const double bestGain,
82 const arma::Row<size_t>& labels,
83 const size_t numClasses,
84 const WeightVecType& weights,
85 const size_t minimumLeafSize,
86 const double minimumGainSplit,
89 const bool splitIfBetterGain =
false);
116 template<
bool UseWeights,
typename VecType,
typename WeightVecType>
118 const double bestGain,
120 const arma::rowvec& responses,
121 const WeightVecType& weights,
122 const size_t minimumLeafSize,
123 const double minimumGainSplit,
126 FitnessFunction& fitnessFunction,
127 const bool splitIfBetterGain =
false);
149 template<
typename ElemType>
151 const ElemType& point,
152 const double& splitInfo,
160 #include "random_binary_numeric_split_impl.hpp" The RandomBinaryNumericSplit is a splitting function for decision trees that will split based on a ra...
static size_t CalculateDirection(const ElemType &point, const double &splitInfo, const AuxiliarySplitInfo &)
Given a point, calculate which child it should go to (left or right).
Linear algebra utility functions, generally performed on matrices or vectors.
The core includes that mlpack expects; standard C++ includes and Armadillo.
static double SplitIfBetter(const double bestGain, const VecType &data, const arma::Row< size_t > &labels, const size_t numClasses, const WeightVecType &weights, const size_t minimumLeafSize, const double minimumGainSplit, arma::vec &splitInfo, AuxiliarySplitInfo &aux, const bool splitIfBetterGain=false)
Check if we can split a node.
static size_t NumChildren(const double &, const AuxiliarySplitInfo &)
Returns 2, since the binary split always has two children.