Papers › The Effect of Points Dispersion on the k-nn Search in Random Projection Forests

The Effect of Points Dispersion on the k-nn Search in Random Projection Forests

25 Feb 2023arXiv:2302.13160archive 2025-07-28

Mashaan Alshammari, John Stavrakakis, Adel F. Ahmed, Masahiro Takatsuka

Partitioning trees are efficient data structures for k-nearest neighbor search. Machine learning libraries commonly use a special type of partitioning trees called $k$d-trees to perform k-nn search. Unfortunately, $k$d-trees can be ineffective in high dimensions because they need more tree levels to decrease the vector quantization (VQ) error. Random projection trees rpTrees solve this scalability problem by using random directions to split the data. A collection of rpTrees is called rpForest. k-nn search in an rpForest is influenced by two factors: 1) the dispersion of points along the random direction and 2) the number of rpTrees in the rpForest. In this study, we investigate how these two factors affect the k-nn search with varying k values and different datasets. We found that with larger number of trees, the dispersion of points has a very limited effect on the k-nn search. One should use the original rpTree algorithm by picking a random direction regardless of the dispersion of points.

PaperPDFCode

Code

mashaan14/RPTree officialmentioned in paper report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

Not run by Syntology. Nothing on this page verifies that the listed code works.

Tasks

Instance SearchQuantizationVector Quantization (k-means problem)

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Methods

Random Searchk-NN

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections