13#ifndef MLPACK_CORE_TREE_BINARY_SPACE_TREE_RP_TREE_MEAN_SPLIT_HPP
14#define MLPACK_CORE_TREE_BINARY_SPACE_TREE_RP_TREE_MEAN_SPLIT_HPP
32template<
typename BoundType,
typename MatType = arma::mat>
87 return split::PerformSplit<MatType, RPTreeMeanSplit>(data, begin, count,
110 std::vector<size_t>& oldFromNew)
112 return split::PerformSplit<MatType, RPTreeMeanSplit>(data, begin, count,
113 splitInfo, oldFromNew);
122 template<
typename VecType>
126 return arma::dot(point - splitInfo.
mean, point - splitInfo.
mean) <=
139 static ElemType GetAveragePointDistance(MatType& data,
140 const arma::uvec& samples);
151 static bool GetDotMedian(
const MatType& data,
152 const arma::uvec& samples,
153 const arma::Col<ElemType>& direction,
165 static bool GetMeanMedian(
const MatType& data,
166 const arma::uvec& samples,
167 arma::Col<ElemType>& mean,
175#include "rp_tree_mean_split_impl.hpp"
This class splits a binary space tree.
MatType::elem_type ElemType
The element type held by the matrix type.
static bool SplitNode(const BoundType &, MatType &data, const size_t begin, const size_t count, SplitInfo &splitInfo)
Split the node according to the mean value in the dimension with maximum width.
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.
static bool AssignToLeftNode(const VecType &point, const SplitInfo &splitInfo)
Indicates that a point should be assigned to the left subtree.
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...
Linear algebra utility functions, generally performed on matrices or vectors.
The core includes that mlpack expects; standard C++ includes and Armadillo.
An information about the partition.
ElemType splitVal
The value according to which the split will be performed.
arma::Col< ElemType > mean
The mean of some sampled points.
arma::Col< ElemType > direction
The normal to the hyperplane that will split the node.
bool meanSplit
Indicates that we should use the mean split algorithm instead of the median split.