13 #ifndef MLPACK_CORE_TREE_BINARY_SPACE_TREE_RP_TREE_MAX_SPLIT_HPP 14 #define MLPACK_CORE_TREE_BINARY_SPACE_TREE_RP_TREE_MAX_SPLIT_HPP 31 template<
typename BoundType,
typename MatType = arma::mat>
81 return split::PerformSplit<MatType, RPTreeMaxSplit>(data, begin, count,
105 std::vector<size_t>& oldFromNew)
107 return split::PerformSplit<MatType, RPTreeMaxSplit>(data, begin, count,
108 splitInfo, oldFromNew);
117 template<
typename VecType>
146 #include "rp_tree_max_split_impl.hpp" 148 #endif // MLPACK_CORE_TREE_BINARY_SPACE_TREE_RP_TREE_MAX_SPLIT_HPP static size_t PerformSplit(MatType &data, const size_t begin, const size_t count, const SplitInfo &splitInfo)
Perform the split process according to the information about the split.
Linear algebra utility functions, generally performed on matrices or vectors.
arma::Col< ElemType > direction
The normal vector to the hyperplane that splits the node.
The core includes that mlpack expects; standard C++ includes and Armadillo.
This class splits a node by a random hyperplane.
static bool SplitNode(const BoundType &, MatType &data, const size_t begin, const size_t count, SplitInfo &splitInfo)
Split the node by a random hyperplane.
static bool AssignToLeftNode(const VecType &point, const SplitInfo &splitInfo)
Indicates that a point should be assigned to the left subtree.
static bool GetSplitVal(const MatType &data, const size_t begin, const size_t count, const arma::Col< ElemType > &direction, ElemType &splitVal)
This method finds the position of the hyperplane that will split the node.
static size_t PerformSplit(MatType &data, const size_t begin, const size_t count, const SplitInfo &splitInfo, std::vector< size_t > &oldFromNew)
Perform the split process according to the information about the split and return the list of changed...
MatType::elem_type ElemType
The element type held by the matrix type.
An information about the partition.
ElemType splitVal
The value according to which the node is being split.