Available Trees¶
The SHiP framework supports a variety of ultrametric similarity tree types, which form the basis for hierarchy construction. Each tree type encapsulates a specific strategy for representing pairwise similarity across the dataset.
The enum below lists all available tree types supported in the framework:
-
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