buildVptree: Build a VP tree

View source: R/buildVptree.R

buildVptreeR Documentation

Build a VP tree

Description

Build a vantage point tree in preparation for a nearest-neighbors search.

Usage

buildVptree(
  X,
  transposed = FALSE,
  distance = c("Euclidean", "Manhattan", "Cosine")
)

Arguments

X

A numeric matrix where rows correspond to data points and columns correspond to variables (i.e., dimensions).

transposed

Logical scalar indicating whether X is transposed, i.e., rows are variables and columns are data points.

distance

String specifying the type of distance to use.

Details

This function is automatically called by findVptree and related functions. However, it can be called directly by the user to save time if multiple queries are to be performed to the same X.

Points in X are reordered to improve data locality during the nearest-neighbor search. Specifically, points in the same cluster are contiguous and ordered by increasing distance from the cluster center.

The function also reports a list containing four vectors of equal length describing the structure of the VP tree. Each parallel element specifies a node:

  • The first integer vector specifies the column index of data of the current node.

  • The second integer vector specifies the column index of the left child of the current node,

  • The third integer vector specifies the column index of the right child of the current node.

  • The fourth numeric vector specifies the radius of the current node.

All indices here are zero-based, with child values set to -1 for leaf nodes.

Value

A VptreeIndex object containing indexing structures for the VP-tree search.

Author(s)

Aaron Lun

See Also

VptreeIndex, for details on the output class.

findVptree and queryVptree, for dependent functions.

Examples

Y <- matrix(rnorm(100000), ncol=20)
out <- buildVptree(Y)
out


LTLA/kmknn documentation built on Feb. 5, 2024, 6:03 p.m.