Skip to content

@saehrimnir/druidjs / NNDescent

Class: NNDescent<T>

Defined in: knn/NNDescent.js:38

NN-Descent

An efficient graph-based approximate nearest neighbor search algorithm. It works by iteratively improving a neighbor graph using the fact that "neighbors of neighbors are likely to be neighbors".

Template

See

Paper

Extends

  • KNN

Type Parameters

Type ParameterDescription
T extends number[] | Float64Array

Constructors

Constructor

ts
new NNDescent<T>(elements: T[], parameters?: Partial<ParametersNNDescent>): NNDescent<T>;

Defined in: knn/NNDescent.js:55

Parameters

ParameterTypeDescription
elementsT[]Called V in paper.
parametersPartial<ParametersNNDescent>-

Returns

NNDescent<T>

See

http://www.cs.princeton.edu/cass/papers/www11.pdf

Overrides

ts
KNN.constructor

Properties

PropertyTypeInherited fromDefined in
_elementsT[]KNN._elementsknn/KNN.js:14
_Nnumber-knn/NNDescent.js:62
_nndescent_elements{ flag: boolean; index: number; value: T; }[]-knn/NNDescent.js:66
_parametersParametersNNDescentKNN._parametersknn/KNN.js:16
_randomizerRandomizer-knn/NNDescent.js:63
_sample_sizenumber-knn/NNDescent.js:64
_type"array" | "typed"KNN._typeknn/KNN.js:18

Methods

add()

ts
add(elements: T[]): NNDescent<T>;

Defined in: knn/NNDescent.js:152

Parameters

ParameterTypeDescription
elementsT[]-

Returns

NNDescent<T>


ts
search(x: T, k?: number): {
  distance: number;
  element: T;
  index: number;
}[];

Defined in: knn/NNDescent.js:236

Parameters

ParameterTypeDefault valueDescription
xTundefined-
k?number5Default is 5

Returns

{ distance: number; element: T; index: number; }[]

Overrides

ts
KNN.search

search_by_index()

ts
search_by_index(i: number, k?: number): {
  distance: number;
  element: T;
  index: number;
}[];

Defined in: knn/NNDescent.js:325

Parameters

ParameterTypeDefault valueDescription
inumberundefined-
k?number5Default is 5

Returns

{ distance: number; element: T; index: number; }[]

Overrides

ts
KNN.search_by_index