BallTree
API reference for BallTree
Neighbors.BallTree
constructor(
X: number[][] = [],
leafSize: number = 40,
metric: Distance.IDistanceType = 'euclidiean',
p: number = 2
)Parameters
X(number[][]): training data used to build the tree. Can be provided at construction time or viafit.leafSize(number): maximum number of points stored in a leaf. Default is40.metric(Distance.IDistanceType): distance function for search. Defaults to'euclidiean'.p(number): norm order for Minkowski distance when applicable. Default is2.
Algorithm
Ball tree organizes points in hyperspheres. Each node stores a centroid and radius covering its children. During queries the tree is traversed to prune branches that are farther than the currently found neighbors, leading to faster neighbor search than a brute-force approach.
query(X: number[][], k: number = 1) returns distances and indices of nearest neighbors.
queryRadius(X: number[][], r: number, returnDistance = false) finds neighbors within given radius.
Example
const tree = new BallTree(X, 2);
const result = tree.query(X.slice(0, 1), 3);