Skip to content

@saehrimnir/druidjs / PaCMAP

Class: PaCMAP<T, P>

Defined in: dimred/PaCMAP.js:50

Pairwise Controlled Manifold Approximation Projection (PaCMAP)

A dimensionality reduction technique that uses three types of point pairs — nearest neighbor (NN), mid-near (MN), and further (FP) pairs — with a dynamic three-phase weight schedule and Adam optimization to preserve both local and global structure. Neighbours are scaled by a local density estimate before selection, which is what separates the NN set from a plain KNN graph.

Template

T

Template

P

Widened by LocalMAP, which adds a parameter.

See

Example

ts
import * as druid from "@saehrimnir/druidjs";

const X = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]];
const pacmap = new druid.PaCMAP(X, {
    n_neighbors: 10,
    MN_ratio: 0.5,
    FP_ratio: 2.0,
    seed: 42
});

const Y = pacmap.transform(); // 450 iterations (default)
// [[x1, y1], [x2, y2], [x3, y3]]

Extends

  • DR

Extended by

Type Parameters

Type ParameterDefault typeDescription
T extends InputType-
P extends ParametersPaCMAPParametersPaCMAPWidened by LocalMAP, which adds a parameter.

Constructors

Constructor

ts
new PaCMAP<T, P>(X: T, parameters?: Partial<P>): PaCMAP<T, P>;

Defined in: dimred/PaCMAP.js:55

Parameters

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

Returns

PaCMAP<T, P>

Overrides

ts
DR.constructor

Properties

PropertyTypeInherited fromDefined in
__inputTDR.__inputdimred/DR.js:46
_adam_mFloat64Array<ArrayBuffer> | undefined-dimred/PaCMAP.js:528
_adam_tany-dimred/PaCMAP.js:452
_adam_vFloat64Array<ArrayBuffer> | undefined-dimred/PaCMAP.js:529
_DnumberDR._Ddimred/DR.js:28
_fp_pairsInt32Array<ArrayBufferLike> | undefined-dimred/PaCMAP.js:525
_gradFloat64Array<ArrayBuffer> | undefined-dimred/PaCMAP.js:531
_is_initializedbooleanDR._is_initializeddimred/DR.js:34
_iternumber-dimred/PaCMAP.js:79
_mn_pairsInt32Array<ArrayBufferLike> | undefined-dimred/PaCMAP.js:524
_NnumberDR._Ndimred/DR.js:30
_nn_pairsInt32Array<ArrayBufferLike> | undefined-dimred/PaCMAP.js:520
_parametersPDR._parametersdimred/DR.js:49
_randomizerRandomizerDR._randomizerdimred/DR.js:32
_type"array" | "matrix" | "typed"DR._typedimred/DR.js:54
_X_knnMatrix | undefined-dimred/PaCMAP.js:511
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

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

Defined in: dimred/DR.js:210

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

Returns

DR<T, P>

Inherited from

ts
DR.check_init

generator()

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

Defined in: dimred/PaCMAP.js:605

Parameters

ParameterTypeDescription
iterations?numberTotal number of iterations. Defaults to sum of num_iters.

Returns

Generator<T, T, void>

Overrides

ts
DR.generator

init()

ts
init(): PaCMAP<T, P>;

Defined in: dimred/PaCMAP.js:474

Initializes PaCMAP: preprocessing, PCA embedding, NN, MN and FP pairs, and Adam state.

Returns

PaCMAP<T, P>

Overrides

ts
DR.init

next()

ts
next(): Matrix;

Defined in: dimred/PaCMAP.js:570

Performs one optimization step.

Returns

Matrix


parameter()

Call Signature

ts
parameter(): P;

Defined in: dimred/DR.js:82

Get all Parameters.

Returns

P

Inherited from
ts
DR.parameter

Call Signature

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

Defined in: dimred/DR.js:88

Get value of given parameter.

Type Parameters
Type ParameterDescription
K extends string | number | symbol
Parameters
ParameterTypeDescription
nameKName of the parameter.
Returns

P[K]

Inherited from
ts
DR.parameter

Call Signature

ts
parameter<K>(name: K, value: P[K]): PaCMAP<T, P>;

Defined in: dimred/DR.js:95

Set value of given parameter.

Type Parameters
Type ParameterDescription
K extends string | number | symbol
Parameters
ParameterTypeDescription
nameKName of the parameter.
valueP[K]Value of the parameter to set.
Returns

PaCMAP<T, P>

Inherited from
ts
DR.parameter

release()

ts
release(): PaCMAP<T, P>;

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

PaCMAP<T, P>

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/PaCMAP.js:591

Parameters

ParameterTypeDescription
iterations?numberTotal number of iterations. Defaults to sum of num_iters.

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

Defined in: dimred/PaCMAP.js:633

Type Parameters

Type ParameterDescription
T extends InputType

Parameters

ParameterTypeDescription
XT-
parameters?Partial<ParametersPaCMAP>-

Returns

Generator<T, T, void>

Overrides

ts
DR.generator

transform()

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

Defined in: dimred/PaCMAP.js:622

Type Parameters

Type ParameterDescription
T extends InputType

Parameters

ParameterTypeDescription
XT-
parameters?Partial<ParametersPaCMAP>-

Returns

T

Overrides

ts
DR.transform

transform_async()

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

Defined in: dimred/PaCMAP.js:645

Type Parameters

Type ParameterDescription
T extends InputType

Parameters

ParameterTypeDescription
XT-
parameters?Partial<ParametersPaCMAP>-

Returns

Promise<T>

Overrides

ts
DR.transform_async