Skip to content

@saehrimnir/druidjs / SQDMDS

Class: SQDMDS<T>

Defined in: dimred/SQDMDS.js:22

SQuadMDS (Stochastic Quartet MDS)

A lean Stochastic Quartet MDS improving global structure preservation in neighbor embedding like t-SNE and UMAP.

Template

T

Extends

  • DR

Type Parameters

Type ParameterDescription
T extends InputType

Constructors

Constructor

ts
new SQDMDS<T>(X: T, parameters?: Partial<ParametersSQDMDS>): SQDMDS<T>;

Defined in: dimred/SQDMDS.js:36

SQuadMDS: a lean Stochastic Quartet MDS improving global structure preservation in neighbor embedding like t-SNE and UMAP.

Parameters

ParameterTypeDescription
XT-
parameters?Partial<ParametersSQDMDS>-

Returns

SQDMDS<T>

See

https://arxiv.org/pdf/2202.12087.pdf

Overrides

ts
DR.constructor

Properties

PropertyTypeInherited fromDefined in
__inputTDR.__inputdimred/DR.js:46
_add| ((...summands: Float64Array<ArrayBufferLike>[]) => Float64Array<ArrayBufferLike>) | undefined-dimred/SQDMDS.js:60
_DnumberDR._Ddimred/DR.js:28
_decay_startnumber | undefined-dimred/SQDMDS.js:106
_distance_exaggerationboolean | undefined-dimred/SQDMDS.js:155
_flat_quartetsUint32Array<ArrayBufferLike> | undefined-dimred/SQDMDS.js:74
_gradsMatrix | undefined-dimred/SQDMDS.js:69
_HD_metric| ((i: number, j: number, X: Matrix) => number) | undefined-dimred/SQDMDS.js:83
_HD_metric_exaggeration| ((i: number, j: number, X: Matrix) => number) | undefined-dimred/SQDMDS.js:85
_indicesnumber[] | undefined-dimred/SQDMDS.js:70
_is_initializedbooleanDR._is_initializeddimred/DR.js:34
_LRnumber | undefined-dimred/SQDMDS.js:65
_LR_initnumber | undefined-dimred/SQDMDS.js:64
_minus| ((a: Float64Array<ArrayBufferLike>, b: Float64Array<ArrayBufferLike>) => Float64Array<ArrayBufferLike>) | undefined-dimred/SQDMDS.js:62
_momentumsMatrix | undefined-dimred/SQDMDS.js:68
_mult| ((a: Float64Array<ArrayBufferLike>, v: number) => Float64Array<ArrayBufferLike>) | undefined-dimred/SQDMDS.js:63
_NnumberDR._Ndimred/DR.js:30
_offsetnumber | undefined-dimred/SQDMDS.js:67
_parametersParametersSQDMDSDR._parametersdimred/DR.js:49
_randomizerRandomizerDR._randomizerdimred/DR.js:32
_sub_div| ((x: Float64Array<ArrayBufferLike>, y: Float64Array<ArrayBufferLike>, div: number) => Float64Array<ArrayBufferLike>) | undefined-dimred/SQDMDS.js:61
_type"array" | "matrix" | "typed"DR._typedimred/DR.js:54
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

__add()

ts
__add(d: number): (...summands: Float64Array<ArrayBufferLike>[]) => Float64Array<ArrayBufferLike>;

Defined in: dimred/SQDMDS.js:477

Inline!

Parameters

ParameterTypeDescription
dnumber-

Returns

(...summands: Float64Array<ArrayBufferLike>[]) => Float64Array<ArrayBufferLike>


__minus()

ts
__minus(d: number): (a: Float64Array<ArrayBufferLike>, b: Float64Array<ArrayBufferLike>) => Float64Array<ArrayBufferLike>;

Defined in: dimred/SQDMDS.js:463

Inline!

Parameters

ParameterTypeDescription
dnumber-

Returns

(a: Float64Array<ArrayBufferLike>, b: Float64Array<ArrayBufferLike>) => Float64Array<ArrayBufferLike>


__mult()

ts
__mult(d: number): (a: Float64Array<ArrayBufferLike>, v: number) => Float64Array<ArrayBufferLike>;

Defined in: dimred/SQDMDS.js:496

Inline!

Parameters

ParameterTypeDescription
dnumber-

Returns

(a: Float64Array<ArrayBufferLike>, v: number) => Float64Array<ArrayBufferLike>


__sub_div()

ts
__sub_div(d: number): (x: Float64Array<ArrayBufferLike>, y: Float64Array<ArrayBufferLike>, div: number) => Float64Array<ArrayBufferLike>;

Defined in: dimred/SQDMDS.js:510

Creates a new array (x - y) / div.

Parameters

ParameterTypeDescription
dnumber-

Returns

(x: Float64Array<ArrayBufferLike>, y: Float64Array<ArrayBufferLike>, div: number) => Float64Array<ArrayBufferLike>


_fill_MDS_grads()

ts
_fill_MDS_grads(
   Y: Matrix, 
   grads: Matrix, 
   exaggeration?: boolean, 
   zero_grad?: boolean, 
   quartets?: Uint32Array<ArrayBufferLike>[]): Matrix;

Defined in: dimred/SQDMDS.js:258

Computes the gradients.

Parameters

ParameterTypeDefault valueDescription
YMatrixundefinedThe Projection.
gradsMatrixundefinedThe gradients.
exaggeration?booleanfalseWhether or not to use early exaggeration. Default is false
zero_grad?booleantrueWhether or not to reset the gradient in the beginning. Default is true
quartets?Uint32Array<ArrayBufferLike>[]...Quartets to accumulate over. Pass the ones already drawn for this iteration; omitting them draws a fresh set, which advances the seeded randomizer.

Returns

Matrix

The gradients.


[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, ParametersSQDMDS>;

Defined in: dimred/DR.js:210

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

Returns

DR<T, ParametersSQDMDS>

Inherited from

ts
DR.check_init

generator()

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

Defined in: dimred/SQDMDS.js:123

Computes the projection.

Parameters

ParameterTypeDefault valueDescription
iterations?number500Number of iterations. Default is 500

Returns

Generator<T, T, void>

The intermediate steps of the projection.

Overrides

ts
DR.generator

init()

ts
abstract init(): void;

Defined in: dimred/SQDMDS.js:55

Returns

void

Overrides

ts
DR.init

parameter()

Call Signature

ts
parameter(): ParametersSQDMDS;

Defined in: dimred/DR.js:82

Get all Parameters.

Returns

ParametersSQDMDS

Inherited from
ts
DR.parameter

Call Signature

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

Defined in: dimred/DR.js:88

Get value of given parameter.

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

ParametersSQDMDS[K]

Inherited from
ts
DR.parameter

Call Signature

ts
parameter<K>(name: K, value: ParametersSQDMDS[K]): SQDMDS<T>;

Defined in: dimred/DR.js:95

Set value of given parameter.

Type Parameters
Type ParameterDescription
K extends keyof ParametersSQDMDS
Parameters
ParameterTypeDescription
nameKName of the parameter.
valueParametersSQDMDS[K]Value of the parameter to set.
Returns

SQDMDS<T>

Inherited from
ts
DR.parameter

release()

ts
release(): SQDMDS<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

SQDMDS<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(iterations?: number): T;

Defined in: dimred/SQDMDS.js:103

Computes the projection.

Parameters

ParameterTypeDefault valueDescription
iterations?number500Number of iterations. Default is 500

Returns

T

The projection.

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<ParametersSQDMDS>): Generator<T, T, void>;

Defined in: dimred/SQDMDS.js:533

Type Parameters

Type ParameterDescription
T extends InputType

Parameters

ParameterTypeDescription
XT-
parameters?Partial<ParametersSQDMDS>-

Returns

Generator<T, T, void>

Overrides

ts
DR.generator

transform()

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

Defined in: dimred/SQDMDS.js:522

Type Parameters

Type ParameterDescription
T extends InputType

Parameters

ParameterTypeDescription
XT-
parameters?Partial<ParametersSQDMDS>-

Returns

T

Overrides

ts
DR.transform

transform_async()

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

Defined in: dimred/SQDMDS.js:545

Type Parameters

Type ParameterDescription
T extends InputType

Parameters

ParameterTypeDescription
XT-
parameters?Partial<ParametersSQDMDS>-

Returns

Promise<T>

Overrides

ts
DR.transform_async