mlpack 3.4.2
mean_split.hpp
Go to the documentation of this file.
1
14#ifndef MLPACK_CORE_TREE_BINARY_SPACE_TREE_MEAN_SPLIT_HPP
15#define MLPACK_CORE_TREE_BINARY_SPACE_TREE_MEAN_SPLIT_HPP
16
17#include <mlpack/prereqs.hpp>
19
20namespace mlpack {
21namespace tree {
22
28template<typename BoundType, typename MatType = arma::mat>
30{
31 public:
33 struct SplitInfo
34 {
38 double splitVal;
39 };
40
54 static bool SplitNode(const BoundType& bound,
55 MatType& data,
56 const size_t begin,
57 const size_t count,
58 SplitInfo& splitInfo);
59
72 static size_t PerformSplit(MatType& data,
73 const size_t begin,
74 const size_t count,
75 const SplitInfo& splitInfo)
76 {
77 return split::PerformSplit<MatType, MeanSplit>(data, begin, count,
78 splitInfo);
79 }
80
96 static size_t PerformSplit(MatType& data,
97 const size_t begin,
98 const size_t count,
99 const SplitInfo& splitInfo,
100 std::vector<size_t>& oldFromNew)
101 {
102 return split::PerformSplit<MatType, MeanSplit>(data, begin, count,
103 splitInfo, oldFromNew);
104 }
105
112 template<typename VecType>
113 static bool AssignToLeftNode(const VecType& point,
114 const SplitInfo& splitInfo)
115 {
116 return point[splitInfo.splitDimension] < splitInfo.splitVal;
117 }
118};
119
120} // namespace tree
121} // namespace mlpack
122
123// Include implementation.
124#include "mean_split_impl.hpp"
125
126#endif
A binary space partitioning tree node is split into its left and right child.
Definition: mean_split.hpp:30
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.
Definition: mean_split.hpp:72
static bool SplitNode(const BoundType &bound, MatType &data, const size_t begin, const size_t count, SplitInfo &splitInfo)
Find the partition of the node.
static bool AssignToLeftNode(const VecType &point, const SplitInfo &splitInfo)
Indicates that a point should be assigned to the left subtree.
Definition: mean_split.hpp:113
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...
Definition: mean_split.hpp:96
Linear algebra utility functions, generally performed on matrices or vectors.
Definition: cv.hpp:1
The core includes that mlpack expects; standard C++ includes and Armadillo.
An information about the partition.
Definition: mean_split.hpp:34
size_t splitDimension
The dimension to split the node on.
Definition: mean_split.hpp:36
double splitVal
The split in dimension splitDimension is based on this value.
Definition: mean_split.hpp:38