Skip to content

@saehrimnir/druidjs / KKMDS

Class: KKMDS<T> ​

Defined in: dimred/KKMDS.js:22

Kamada-Kawai Multidimensional Scaling (KKMDS)

StressMDS fixed at weights: -2, weighting each pair by 1 / d_ij². That is the Kamada-Kawai energy from graph drawing, known in the MDS literature as elastic scaling.

Its classic use is laying out a graph from its shortest-path distances — pass those as a "precomputed" matrix, as MINFOTree does.

Template ​

T

See ​

Extends ​

Type Parameters ​

Type ParameterDescription
T extends InputType

Constructors ​

Constructor ​

ts
new KKMDS<T>(X: T, parameters?: Partial<ParametersKKMDS>): KKMDS<T>;

Defined in: dimred/KKMDS.js:30

Kamada-Kawai weighted MDS.

Parameters ​

ParameterTypeDescription
XTThe high-dimensional data, or a precomputed distance matrix.
parameters?Partial<ParametersKKMDS>Object containing parameterization of the DR method. weights is not among them; it is fixed at -2.

Returns ​

KKMDS<T>

Overrides ​

StressMDS.constructor

Properties ​

PropertyTypeDefault valueDescriptionInherited fromDefined in
__inputTundefined-StressMDS.__inputdimred/DR.js:46
_Dnumberundefined-StressMDS._Ddimred/DR.js:28
_energynumberInfinity-StressMDS._energydimred/StressMDS.js:63
_is_initializedbooleanundefined-StressMDS._is_initializeddimred/DR.js:34
_Nnumberundefined-StressMDS._Ndimred/DR.js:30
_parametersParametersStressMDSundefined-StressMDS._parametersdimred/DR.js:49
_randomizerRandomizerundefined-StressMDS._randomizerdimred/DR.js:32
_target_distancesMatrix | undefinedundefinedThe target distances. Named apart from the base class's _D, which is the input dimensionality of X, not a matrix.StressMDS._target_distancesdimred/StressMDS.js:57
_type"array" | "matrix" | "typed"undefined-StressMDS._typedimred/DR.js:54
_weightsMatrix | undefinedundefined-StressMDS._weightsdimred/StressMDS.js:60
XMatrixundefined-StressMDS.Xdimred/DR.js:56
YMatrixundefined-StressMDS.Ydimred/DR.js:58

Accessors ​

energy ​

Get Signature ​

ts
get energy(): number;

Defined in: dimred/StressMDS.js:103

The weighted stress σ(Y) of the current embedding.

Returns ​

number

Inherited from ​

StressMDS.energy


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 ​

StressMDS.projection


weights ​

Get Signature ​

ts
get weights(): Matrix;

Defined in: dimred/StressMDS.js:113

The weight matrix actually in use, whatever form weights was given in.

Returns ​

Matrix

Inherited from ​

StressMDS.weights

Methods ​

[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 ​

StressMDS.[dispose]


check_init() ​

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

Defined in: dimred/DR.js:210

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

Returns ​

DR<T, ParametersStressMDS>

Inherited from ​

StressMDS.check_init


generator() ​

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

Defined in: dimred/StressMDS.js:326

Computes the projection.

Returns ​

Generator<T, T, void>

A generator yielding the intermediate steps of the projection.

Inherited from ​

StressMDS.generator


init() ​

ts
init(): KKMDS<T>;

Defined in: dimred/StressMDS.js:186

Computes the target distances, the weights, and the starting configuration.

Returns ​

KKMDS<T>

Inherited from ​

StressMDS.init


parameter() ​

Call Signature ​

ts
parameter(): ParametersStressMDS;

Defined in: dimred/DR.js:82

Get all Parameters.

Returns ​

ParametersStressMDS

Inherited from ​

StressMDS.parameter

Call Signature ​

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

Defined in: dimred/DR.js:88

Get value of given parameter.

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

ParametersStressMDS[K]

Inherited from ​

StressMDS.parameter

Call Signature ​

ts
parameter<K>(name: K, value: ParametersStressMDS[K]): KKMDS<T>;

Defined in: dimred/DR.js:95

Set value of given parameter.

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

KKMDS<T>

Inherited from ​

StressMDS.parameter


release() ​

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

KKMDS<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 ​

StressMDS.release


transform() ​

ts
transform(): T;

Defined in: dimred/StressMDS.js:386

Computes the projection.

Returns ​

T

Inherited from ​

StressMDS.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 ​

StressMDS.transform_async


generator() ​

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

Defined in: dimred/KKMDS.js:51

Type Parameters ​

Type ParameterDescription
T extends InputType

Parameters ​

ParameterTypeDescription
XT-
parameters?Partial<ParametersKKMDS>-

Returns ​

Generator<T, T, void>

Overrides ​

StressMDS.generator


transform() ​

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

Defined in: dimred/KKMDS.js:40

Type Parameters ​

Type ParameterDescription
T extends InputType

Parameters ​

ParameterTypeDescription
XT-
parameters?Partial<ParametersKKMDS>-

Returns ​

T

Overrides ​

StressMDS.transform


transform_async() ​

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

Defined in: dimred/KKMDS.js:63

Type Parameters ​

Type ParameterDescription
T extends InputType

Parameters ​

ParameterTypeDescription
XT-
parameters?Partial<ParametersKKMDS>-

Returns ​

Promise<T>

Overrides ​

StressMDS.transform_async