mlpack
2.0.1
|
Public Types | |
enum | TreeTypes { KD_TREE, COVER_TREE, R_TREE, R_STAR_TREE, BALL_TREE } |
Public Member Functions | |
RSModel (const int treeType=TreeTypes::KD_TREE, const bool randomBasis=false) | |
Initialize the RSModel with the given type and whether or not a random basis should be used. More... | |
~RSModel () | |
Clean memory, if necessary. More... | |
void | BuildModel (arma::mat &&referenceSet, const size_t leafSize, const bool naive, const bool singleMode) |
Build the reference tree on the given dataset with the given parameters. More... | |
const arma::mat & | Dataset () const |
Expose the dataset. More... | |
size_t | LeafSize () const |
Get the leaf size (applicable to everything but the cover tree). More... | |
size_t & | LeafSize () |
Modify the leaf size (applicable to everything but the cover tree). More... | |
bool | Naive () const |
Get whether the model is in naive search mode. More... | |
bool & | Naive () |
Modify whether the model is in naive search mode. More... | |
bool | RandomBasis () const |
Get whether a random basis is used. More... | |
bool & | RandomBasis () |
Modify whether a random basis is used (don't do this after the model has been built). More... | |
void | Search (arma::mat &&querySet, const math::Range &range, std::vector< std::vector< size_t >> &neighbors, std::vector< std::vector< double >> &distances) |
Perform range search. More... | |
void | Search (const math::Range &range, std::vector< std::vector< size_t >> &neighbors, std::vector< std::vector< double >> &distances) |
Perform monochromatic range search, with the reference set as the query set. More... | |
template<typename Archive > | |
void | Serialize (Archive &ar, const unsigned int) |
Serialize the range search model. More... | |
bool | SingleMode () const |
Get whether the model is in single-tree search mode. More... | |
bool & | SingleMode () |
Modify whether the model is in single-tree search mode. More... | |
int | TreeType () const |
Get the type of tree. More... | |
int & | TreeType () |
Modify the type of tree (don't do this after the model has been built). More... | |
Private Types | |
template<template< typename TreeMetricType, typename TreeStatType, typename TreeMatType > class TreeType> | |
using | RSType = RangeSearch< metric::EuclideanDistance, arma::mat, TreeType > |
The mostly-specified type of the range search model. More... | |
Private Member Functions | |
void | CleanMemory () |
Clean up memory. More... | |
std::string | TreeName () const |
Return a string representing the name of the tree. More... | |
Private Attributes | |
RSType< tree::BallTree > * | ballTreeRS |
Ball tree based range search object (NULL if not in use). More... | |
RSType< tree::StandardCoverTree > * | coverTreeRS |
Cover tree based range search object (NULL if not in use). More... | |
RSType< tree::KDTree > * | kdTreeRS |
kd-tree based range search object (NULL if not in use). More... | |
size_t | leafSize |
arma::mat | q |
Random projection matrix. More... | |
bool | randomBasis |
If true, we randomly project the data into a new basis before search. More... | |
RSType< tree::RStarTree > * | rStarTreeRS |
R* tree based range search object (NULL if not in use). More... | |
RSType< tree::RTree > * | rTreeRS |
R tree based range search object (NULL if not in use). More... | |
int | treeType |
Definition at line 29 of file rs_model.hpp.
|
private |
The mostly-specified type of the range search model.
Definition at line 54 of file rs_model.hpp.
Enumerator | |
---|---|
KD_TREE | |
COVER_TREE | |
R_TREE | |
R_STAR_TREE | |
BALL_TREE |
Definition at line 32 of file rs_model.hpp.
mlpack::range::RSModel::RSModel | ( | const int | treeType = TreeTypes::KD_TREE , |
const bool | randomBasis = false |
||
) |
Initialize the RSModel with the given type and whether or not a random basis should be used.
treeType | Type of tree to use. |
randomBasis | Whether or not to use a random basis. |
mlpack::range::RSModel::~RSModel | ( | ) |
Clean memory, if necessary.
void mlpack::range::RSModel::BuildModel | ( | arma::mat && | referenceSet, |
const size_t | leafSize, | ||
const bool | naive, | ||
const bool | singleMode | ||
) |
Build the reference tree on the given dataset with the given parameters.
This takes possession of the reference set to avoid a copy.
referenceSet | Set of reference points. |
leafSize | Leaf size of tree (ignored for the cover tree). |
naive | Whether naive search should be used. |
singleMode | Whether single-tree search should be used. |
|
private |
Clean up memory.
const arma::mat& mlpack::range::RSModel::Dataset | ( | ) | const |
Expose the dataset.
|
inline |
Get the leaf size (applicable to everything but the cover tree).
Definition at line 102 of file rs_model.hpp.
References leafSize.
|
inline |
Modify the leaf size (applicable to everything but the cover tree).
Definition at line 104 of file rs_model.hpp.
References leafSize.
bool mlpack::range::RSModel::Naive | ( | ) | const |
Get whether the model is in naive search mode.
bool& mlpack::range::RSModel::Naive | ( | ) |
Modify whether the model is in naive search mode.
|
inline |
Get whether a random basis is used.
Definition at line 112 of file rs_model.hpp.
References randomBasis.
|
inline |
Modify whether a random basis is used (don't do this after the model has been built).
Definition at line 115 of file rs_model.hpp.
References randomBasis.
void mlpack::range::RSModel::Search | ( | arma::mat && | querySet, |
const math::Range & | range, | ||
std::vector< std::vector< size_t >> & | neighbors, | ||
std::vector< std::vector< double >> & | distances | ||
) |
Perform range search.
This takes possession of the query set, so the query set will not be usable after the search. For more information on the output format, see RangeSearch<>::Search().
querySet | Set of query points. |
range | Range to search for. |
neighbors | Output: neighbors falling within the desired range. |
distances | Output: distances of neighbors. |
void mlpack::range::RSModel::Search | ( | const math::Range & | range, |
std::vector< std::vector< size_t >> & | neighbors, | ||
std::vector< std::vector< double >> & | distances | ||
) |
Perform monochromatic range search, with the reference set as the query set.
For more information on the output format, see RangeSearch<>::Search().
range | Range to search for. |
neighbors | Output: neighbors falling within the desired range. |
distances | Output: distances of neighbors. |
void mlpack::range::RSModel::Serialize | ( | Archive & | ar, |
const unsigned | int | ||
) |
Serialize the range search model.
bool mlpack::range::RSModel::SingleMode | ( | ) | const |
Get whether the model is in single-tree search mode.
bool& mlpack::range::RSModel::SingleMode | ( | ) |
Modify whether the model is in single-tree search mode.
|
private |
Return a string representing the name of the tree.
This is used for logging output.
|
inline |
|
inline |
Modify the type of tree (don't do this after the model has been built).
Definition at line 109 of file rs_model.hpp.
References treeType.
|
private |
Ball tree based range search object (NULL if not in use).
Definition at line 66 of file rs_model.hpp.
|
private |
Cover tree based range search object (NULL if not in use).
Definition at line 60 of file rs_model.hpp.
|
private |
kd-tree based range search object (NULL if not in use).
Definition at line 58 of file rs_model.hpp.
|
private |
Definition at line 43 of file rs_model.hpp.
Referenced by LeafSize().
|
private |
Random projection matrix.
Definition at line 48 of file rs_model.hpp.
|
private |
If true, we randomly project the data into a new basis before search.
Definition at line 46 of file rs_model.hpp.
Referenced by RandomBasis().
|
private |
R* tree based range search object (NULL if not in use).
Definition at line 64 of file rs_model.hpp.
|
private |
R tree based range search object (NULL if not in use).
Definition at line 62 of file rs_model.hpp.
|
private |
Definition at line 42 of file rs_model.hpp.
Referenced by TreeType().