mlpack
Classes | Public Types | Static Public Member Functions | List of all members
mlpack::tree::RPTreeMaxSplit< BoundType, MatType > Class Template Reference

This class splits a node by a random hyperplane. More...

#include <rp_tree_max_split.hpp>

Classes

struct  SplitInfo
 An information about the partition. More...
 

Public Types

typedef MatType::elem_type ElemType
 The element type held by the matrix type.
 

Static Public Member Functions

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...
 
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...
 
template<typename VecType >
static bool AssignToLeftNode (const VecType &point, const SplitInfo &splitInfo)
 Indicates that a point should be assigned to the left subtree. More...
 

Detailed Description

template<typename BoundType, typename MatType = arma::mat>
class mlpack::tree::RPTreeMaxSplit< BoundType, MatType >

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).

Member Function Documentation

◆ AssignToLeftNode()

template<typename BoundType , typename MatType = arma::mat>
template<typename VecType >
static bool mlpack::tree::RPTreeMaxSplit< BoundType, MatType >::AssignToLeftNode ( const VecType &  point,
const SplitInfo splitInfo 
)
inlinestatic

Indicates that a point should be assigned to the left subtree.

Parameters
pointThe point that is being assigned.
splitInfoAn information about the split.

◆ PerformSplit() [1/2]

template<typename BoundType , typename MatType = arma::mat>
static size_t mlpack::tree::RPTreeMaxSplit< BoundType, MatType >::PerformSplit ( MatType &  data,
const size_t  begin,
const size_t  count,
const SplitInfo splitInfo 
)
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.

Parameters
dataThe dataset used by the binary space tree.
beginIndex of the starting point in the dataset that belongs to this node.
countNumber of points in this node.
splitInfoThe information about the split.

◆ PerformSplit() [2/2]

template<typename BoundType , typename MatType = arma::mat>
static size_t mlpack::tree::RPTreeMaxSplit< BoundType, MatType >::PerformSplit ( MatType &  data,
const size_t  begin,
const size_t  count,
const SplitInfo splitInfo,
std::vector< size_t > &  oldFromNew 
)
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.

Parameters
dataThe dataset used by the binary space tree.
beginIndex of the starting point in the dataset that belongs to this node.
countNumber of points in this node.
splitInfoThe information about the split.
oldFromNewVector which will be filled with the old positions for each new point.

◆ SplitNode()

template<typename BoundType , typename MatType >
bool mlpack::tree::RPTreeMaxSplit< BoundType, MatType >::SplitNode ( const BoundType &  ,
MatType &  data,
const size_t  begin,
const size_t  count,
SplitInfo splitInfo 
)
static

Split the node by a random hyperplane.

Parameters
*(bound) The bound used for this node.
dataThe dataset used by the binary space tree.
beginIndex of the starting point in the dataset that belongs to this node.
countNumber of points in this node.
splitInfoAn information about the split. This information contains the direction and the value.

The documentation for this class was generated from the following files: