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.