Skip to content

@saehrimnir/druidjs / TriMap

Class: TriMap<T> ​

Defined in: dimred/TriMap.js:51

TriMap

A dimensionality reduction technique that preserves both local and global structure using triplets. It is designed to be a more robust alternative to t-SNE and UMAP.

Template ​

T

Extends ​

  • DR

Type Parameters ​

Type ParameterDescription
T extends InputType

Constructors ​

Constructor ​

ts
new TriMap<T>(X: T, parameters?: Partial<ParametersTriMap>): TriMap<T>;

Defined in: dimred/TriMap.js:63

Parameters ​

ParameterTypeDescription
XTThe high-dimensional data.
parameters?Partial<ParametersTriMap>Object containing parameterization of the DR method.

Returns ​

TriMap<T>

See ​

Overrides ​

ts
DR.constructor

Properties ​

PropertyTypeInherited fromDefined in
__inputTDR.__inputdimred/DR.js:46
_DnumberDR._Ddimred/DR.js:28
_is_initializedbooleanDR._is_initializeddimred/DR.js:34
_NnumberDR._Ndimred/DR.js:30
_parametersParametersTriMapDR._parametersdimred/DR.js:49
_randomizerRandomizerDR._randomizerdimred/DR.js:32
_triplets_int32Int32Array<ArrayBufferLike> | undefined-dimred/TriMap.js:102
_type"array" | "matrix" | "typed"DR._typedimred/DR.js:54
Cnumber | undefined-dimred/TriMap.js:104
gainMatrix | undefined-dimred/TriMap.js:106
knn| KNN<number[] | Float64Array<ArrayBufferLike>, any> | undefined-dimred/TriMap.js:95
lrnumber | undefined-dimred/TriMap.js:103
n_inliersnumber | undefined-dimred/TriMap.js:91
n_outliersnumber | undefined-dimred/TriMap.js:92
n_randomnumber | undefined-dimred/TriMap.js:93
tripletsMatrix | undefined-dimred/TriMap.js:97
velMatrix | undefined-dimred/TriMap.js:105
weightsFloat64Array<ArrayBuffer> | undefined-dimred/TriMap.js:98
XMatrixDR.Xdimred/DR.js:56
YMatrixDR.Ydimred/DR.js:58

Accessors ​

projection ​

Get Signature ​

ts
get projection(): T;

Defined in: dimred/DR.js:219

Returns ​

T

The projection in the type of input X.

Inherited from ​

ts
DR.projection

Methods ​

_generate_triplets() ​

ts
_generate_triplets(
   n_inliers: number, 
   n_outliers: number, 
   n_random: number): {
  triplets: Matrix;
  weights: Float64Array<ArrayBuffer>;
};

Defined in: dimred/TriMap.js:117

Generates n_inliers x n_outliers x n_random triplets.

Parameters ​

ParameterTypeDescription
n_inliersnumber-
n_outliersnumber-
n_randomnumber-

Returns ​

ts
{
  triplets: Matrix;
  weights: Float64Array<ArrayBuffer>;
}
NameTypeDefault valueDefined in
tripletsMatrixtripletsdimred/TriMap.js:176
weightsFloat64Array<ArrayBuffer>weightsdimred/TriMap.js:177

_grad() ​

ts
_grad(Y: Matrix): {
  grad: Matrix;
  loss: number;
};

Defined in: dimred/TriMap.js:333

Computes the gradient for updating the embedding.

Parameters ​

ParameterTypeDescription
YMatrixThe embedding

Returns ​

ts
{
  grad: Matrix;
  loss: number;
}

The gradient and the current loss.

NameTypeDefined in
gradMatrixdimred/TriMap.js:331
lossnumberdimred/TriMap.js:331

[dispose]() ​

ts
dispose: void;

Defined in: dimred/DR.js:320

Alias of release for the using declaration, so a hand-driven run frees its buffers when the block exits. Note that transform and a completed or break-ed generator() already release on their own — this only matters for a generator abandoned part way.

js
using tsne = new TSNE(X, { d: 2 });
const steps = tsne.generator(500);
steps.next(); // buffers released when the enclosing block exits

Returns ​

void

Inherited from ​

ts
DR.[dispose]

check_init() ​

ts
check_init(): DR<T, ParametersTriMap>;

Defined in: dimred/DR.js:210

If the respective DR method has an init function, call it before transform.

Returns ​

DR<T, ParametersTriMap>

Inherited from ​

ts
DR.check_init

generator() ​

ts
generator(max_iteration?: number): Generator<T, T, void>;

Defined in: dimred/TriMap.js:423

Parameters ​

ParameterTypeDefault valueDescription
max_iterationnumber400-

Returns ​

Generator<T, T, void>

Overrides ​

ts
DR.generator

init() ​

ts
init(pca?: Matrix | null, knn?: 
  | KNN<number[] | Float64Array<ArrayBufferLike>, any>
| null): TriMap<T>;

Defined in: dimred/TriMap.js:84

Parameters ​

ParameterTypeDefault valueDescription
pca?Matrix | nullnullInitial Embedding (if null then PCA gets used). Default is null
knn?| KNN<number[] | Float64Array<ArrayBufferLike>, any> | nullnullKNN Object (if null then a KDTree or BallTree gets used, depending on the metric). Default is null

Returns ​

TriMap<T>

Overrides ​

ts
DR.init

parameter() ​

Call Signature ​

ts
parameter(): ParametersTriMap;

Defined in: dimred/DR.js:82

Get all Parameters.

Returns ​

ParametersTriMap

Inherited from ​
ts
DR.parameter

Call Signature ​

ts
parameter<K>(name: K): ParametersTriMap[K];

Defined in: dimred/DR.js:88

Get value of given parameter.

Type Parameters ​
Type ParameterDescription
K extends keyof ParametersTriMap
Parameters ​
ParameterTypeDescription
nameKName of the parameter.
Returns ​

ParametersTriMap[K]

Inherited from ​
ts
DR.parameter

Call Signature ​

ts
parameter<K>(name: K, value: ParametersTriMap[K]): TriMap<T>;

Defined in: dimred/DR.js:95

Set value of given parameter.

Type Parameters ​
Type ParameterDescription
K extends keyof ParametersTriMap
Parameters ​
ParameterTypeDescription
nameKName of the parameter.
valueParametersTriMap[K]Value of the parameter to set.
Returns ​

TriMap<T>

Inherited from ​
ts
DR.parameter

release() ​

ts
release(): TriMap<T>;

Defined in: dimred/DR.js:302

Hands back the WASM buffers this instance is holding.

Only needed after driving generator() by hand and stopping early — a plain transform(), or a for…of over generator() (including one you break), already releases when it ends. It frees only this method's buffers, never another running instance's, and the next run simply reallocates, so it is safe to call at any time, more than once, and while other instances are mid-run.

Returns ​

TriMap<T>

Example ​

ts
const tsne = new TSNE(X, { d: 2 });
const steps = tsne.generator(500);
steps.next();
tsne.release(); // stop early and give the buffers back

Inherited from ​

ts
DR.release

transform() ​

ts
transform(max_iteration?: number): T;

Defined in: dimred/TriMap.js:407

Parameters ​

ParameterTypeDefault valueDescription
max_iterationnumber400-

Returns ​

T

Overrides ​

ts
DR.transform

transform_async() ​

ts
transform_async(...args: unknown[]): Promise<T>;

Defined in: dimred/DR.js:241

Computes the projection.

Parameters ​

ParameterTypeDescription
...argsunknown[]Arguments the transform method of the respective DR method takes.

Returns ​

Promise<T>

The dimensionality reduced dataset.

Inherited from ​

ts
DR.transform_async

generator() ​

ts
static generator<T>(X: T, parameters?: Partial<ParametersTriMap>): Generator<T, T, void>;

Defined in: dimred/TriMap.js:509

Type Parameters ​

Type ParameterDescription
T extends InputType

Parameters ​

ParameterTypeDescription
XT-
parameters?Partial<ParametersTriMap>-

Returns ​

Generator<T, T, void>

Overrides ​

ts
DR.generator

transform() ​

ts
static transform<T>(X: T, parameters?: Partial<ParametersTriMap>): T;

Defined in: dimred/TriMap.js:498

Type Parameters ​

Type ParameterDescription
T extends InputType

Parameters ​

ParameterTypeDescription
XT-
parameters?Partial<ParametersTriMap>-

Returns ​

T

Overrides ​

ts
DR.transform

transform_async() ​

ts
static transform_async<T>(X: T, parameters?: Partial<ParametersTriMap>): Promise<T>;

Defined in: dimred/TriMap.js:521

Type Parameters ​

Type ParameterDescription
T extends InputType

Parameters ​

ParameterTypeDescription
XT-
parameters?Partial<ParametersTriMap>-

Returns ​

Promise<T>

Overrides ​

ts
DR.transform_async