Available Tree Types¶
Enums
-
enum class UltrametricTreeType¶
Values:
-
enumerator LoadTree¶
Load a previously constructed tree from a JSON file.
**Parameters:** - `json_tree_filepath`: File path of the tree to be loaded. - `tree_type` (default: `LoadTree`, optional): Set the tree type of the loaded tree to `tree_type`.
-
enumerator DCTree¶
Density-Connected Tree (DCTree): a tree structure based on the density-connected distance (dc-distance) [1] .
Parameters:
min_points(default:5): Compute core_dist by using the distance to the min_points’ nearest neighbor of a point.relaxed(default:false): Set the identity distance of the points (leave nodes) to the core_dist.
-
enumerator HST¶
Hierarchically Separated Tree (HST): uses recursive metric partitions to ensure separation properties [2] .
Parameters:
seed(default:-1): Seed for building the HST.-1means random.
-
enumerator CoverTree¶
Cover Tree: a fast, scalable data structure for nearest neighbor queries and clustering [3] .
-
enumerator KDTree¶
KD-Tree: partitions the data space along axis-aligned hyperplanes for efficient spatial queries [3] .
Parameters:
max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator MeanSplitKDTree¶
Variant of KD-Tree using mean splits instead of medians to construct the tree [3] .
Parameters:
max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator BallTree¶
Ball Tree: recursively partitions points into hyperspheres (balls), suitable for non-axis-aligned clusters [3] .
Parameters:
max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator MeanSplitBallTree¶
Variant of Ball Tree that uses mean splits instead of radius-based ones [3] .
Parameters:
max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator RPTree¶
Random Projection Tree (RP Tree): recursively splits data using random hyperplanes [3] .
Parameters:
max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator MaxRPTree¶
Maximum-Spread RP Tree: a variant of RP Tree using splits that maximize spread or variance [3] .
Parameters:
max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator UBTree¶
Upper Bound Tree (UBTree): a tree structure emphasizing similarity upper bounds for clustering [3] .
Parameters:
max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator RTree¶
R-Tree: a dynamic index structure for spatial access methods using bounding rectangles [3] .
Parameters:
min_leaf_size(default:1): Minimum leaf size for this tree (how many leaves can be put in the lowest node).max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator RStarTree¶
R*-Tree: a refined R-Tree with better heuristics for node splitting and reinsertions [3] .
Parameters:
min_leaf_size(default:1): Minimum leaf size for this tree (how many leaves can be put in the lowest node).max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator XTree¶
X-Tree: an extended R-Tree variant that handles high-dimensional data by avoiding overlap [3] .
Parameters:
min_leaf_size(default:1): Minimum leaf size for this tree (how many leaves can be put in the lowest node).max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator HilbertRTree¶
Hilbert R-Tree: an R-Tree optimized using space-filling Hilbert curves to improve locality [3] .
Parameters:
min_leaf_size(default:1): Minimum leaf size for this tree (how many leaves can be put in the lowest node).max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator RPlusTree¶
R+-Tree: avoids overlapping rectangles by splitting objects across multiple nodes [3] .
Parameters:
min_leaf_size(default:1): Minimum leaf size for this tree (how many leaves can be put in the lowest node).max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator RPlusPlusTree¶
R++-Tree: a further improvement over R+-Tree focusing on reduced overlap and better packing [3] .
Parameters:
min_leaf_size(default:1): Minimum leaf size for this tree (how many leaves can be put in the lowest node).max_leaf_size(default:5): Maximum leaf size for this tree (how many leaves can be put in the lowest node).
-
enumerator LoadTree¶
Functions
-
std::string ultrametric_tree_type_to_string(UltrametricTreeType type)¶
-
UltrametricTreeType string_to_ultrametric_tree_type(const std::string &type)¶
-
std::vector<UltrametricTreeType> get_available_ultrametric_tree_types()¶
-
std::vector<std::string> get_available_ultrametric_tree_types_as_strings()¶
Variables
-
constexpr std::array<std::pair<UltrametricTreeType, std::string_view>, 17> ultrametricTreeTypeStrings = {{{UltrametricTreeType::LoadTree, "LoadTree"}, {UltrametricTreeType::DCTree, "DCTree"}, {UltrametricTreeType::HST, "HST"}, {UltrametricTreeType::CoverTree, "CoverTree"}, {UltrametricTreeType::KDTree, "KDTree"}, {UltrametricTreeType::MeanSplitKDTree, "MeanSplitKDTree"}, {UltrametricTreeType::BallTree, "BallTree"}, {UltrametricTreeType::MeanSplitBallTree, "MeanSplitBallTree"}, {UltrametricTreeType::RPTree, "RPTree"}, {UltrametricTreeType::MaxRPTree, "MaxRPTree"}, {UltrametricTreeType::UBTree, "UBTree"}, {UltrametricTreeType::RTree, "RTree"}, {UltrametricTreeType::RStarTree, "RStarTree"}, {UltrametricTreeType::XTree, "XTree"}, {UltrametricTreeType::HilbertRTree, "HilbertRTree"}, {UltrametricTreeType::RPlusTree, "RPlusTree"}, {UltrametricTreeType::RPlusPlusTree, "RPlusPlusTree"},}}¶