Trees
mlpack includes a number of space partitioning trees and other trees for its geometric techniques. These trees are built on data matrices where each column in the matrix is a point in the tree. Trees are organized such that “nearby” points (with respect to a given distance metric) are generally grouped in the same node or branch of the tree.
All trees in mlpack implement the same API, allowing easy plug-and-play usage of different trees. The following tree types are available in mlpack:
KDTree
MeanSplitKDTree
BallTree
MeanSplitBallTree
RPTree
MaxRPTree
UBTree
RTree
RStarTree
XTree
RPlusTree
RPlusPlusTree
HilbertRTree
SPTree
MeanSPTree
NonOrtSPTree
NonOrtMeanSPTree
SpillTree
In general, it is not necessary to create an mlpack tree directly, but instead to simply specify the type of tree a particular algorithm should use via a template parameter. For instance, all of the algorithms below use mlpack trees and can have the type of tree specified via template parameters:
NeighborSearch
(for k-nearest-neighbor and k-furthest-neighbor)RangeSearch
KDE
FastMKS
DTB
(for computing Euclidean minimum spanning trees)KRANN
Note: if you are looking for documentation on decision trees, see the
documentation for the DecisionTree
class.