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>
80 return split::PerformSplit<MatType, RPTreeMaxSplit>(
data, begin,
count,
103 std::vector<size_t>& oldFromNew)
105 return split::PerformSplit<MatType, RPTreeMaxSplit>(
data, begin,
count,
106 splitInfo, oldFromNew);
115 template<
typename VecType>
133 static bool GetSplitVal(
const MatType&
data,
144 #include "rp_tree_max_split_impl.hpp" 146 #endif // MLPACK_CORE_TREE_BINARY_SPACE_TREE_RP_TREE_MAX_SPLIT_HPP 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.
Linear algebra utility functions, generally performed on matrices or vectors.
The core includes that mlpack expects; standard C++ includes and Armadillo.
This class splits a node by a random hyperplane.
ElemType splitVal
The value according to which the node is being split.
constexpr auto data(Container const &container) noexcept -> decltype(container.data())
MatType::elem_type ElemType
The element type held by the matrix type.
auto count(Range &&rng, T const &value) -> enable_if_t< is_range< Range >::value, decltype(::std::count(::std::begin(::core::forward< Range >(rng)), ::std::end(::core::forward< Range >(rng)), value)) >
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...
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.
An information about the partition.
arma::Col< ElemType > direction
The normal vector to the hyperplane that splits the node.