This class splits a node by a random hyperplane. More...
Classes | |
struct | SplitInfo |
An information about the partition. More... | |
Public Types | |
typedef MatType::elem_type | ElemType |
The element type held by the matrix type. More... | |
Static Public Member Functions | |
template < typename VecType > | |
static bool | AssignToLeftNode (const VecType &point, const SplitInfo &splitInfo) |
Indicates that a point should be assigned to the left subtree. More... | |
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. More... | |
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 indices. More... | |
static bool | SplitNode (const BoundType &, MatType &data, const size_t begin, const size_t count, SplitInfo &splitInfo) |
Split the node by a random hyperplane. More... | |
This class splits a node by a random hyperplane.
In order to choose the hyperplane we need to choose the normal to the hyperplane and the position of the hyperplane i.e. the scalar product of the normal and a point.
A point will be assigned to the left subtree if the product of this point and the normal is less or equal to the split value (i.e. the position of the hyperplane).
Definition at line 32 of file rp_tree_max_split.hpp.
typedef MatType::elem_type ElemType |
The element type held by the matrix type.
Definition at line 36 of file rp_tree_max_split.hpp.
|
inlinestatic |
Indicates that a point should be assigned to the left subtree.
point | The point that is being assigned. |
splitInfo | An information about the split. |
Definition at line 116 of file rp_tree_max_split.hpp.
References RPTreeMaxSplit< BoundType, MatType >::SplitInfo::direction, and RPTreeMaxSplit< BoundType, MatType >::SplitInfo::splitVal.
|
inlinestatic |
Perform the split process according to the information about the split.
This will order the dataset such that points that belong to the left subtree are on the left of the split column, and points from the right subtree are on the right side of the split column.
data | The dataset used by the binary space tree. |
begin | Index of the starting point in the dataset that belongs to this node. |
count | Number of points in this node. |
splitInfo | The information about the split. |
Definition at line 75 of file rp_tree_max_split.hpp.
|
inlinestatic |
Perform the split process according to the information about the split and return the list of changed indices.
This will order the dataset such that points that belong to the left subtree are on the left of the split column, and points from the right subtree are on the right side of the split column.
data | The dataset used by the binary space tree. |
begin | Index of the starting point in the dataset that belongs to this node. |
count | Number of points in this node. |
splitInfo | The information about the split. |
oldFromNew | Vector which will be filled with the old positions for each new point. |
Definition at line 99 of file rp_tree_max_split.hpp.
|
static |
Split the node by a random hyperplane.
* | (bound) The bound used for this node. |
data | The dataset used by the binary space tree. |
begin | Index of the starting point in the dataset that belongs to this node. |
count | Number of points in this node. |
splitInfo | An information about the split. This information contains the direction and the value. |