Skip to main content

Overview

TruncatedSVD performs linear dimensionality reduction by projecting data onto a lower-dimensional space using truncated SVD. Unlike PCA, it does not center the data, making it suitable for sparse matrices.

Constructor

new TruncatedSVD(options?: TruncatedSVDOptions)
options
TruncatedSVDOptions
Configuration options for TruncatedSVD

Methods

fit

fit(X: Matrix): this
Compute truncated SVD from training data.
X
Matrix
required
Training data of shape [nSamples, nFeatures]
Returns: The fitted TruncatedSVD instance

transform

transform(X: Matrix): Matrix
Project data onto singular components.
X
Matrix
required
Data to transform of shape [nSamples, nFeatures]
Returns: Transformed data of shape [nSamples, nComponents]

fitTransform

fitTransform(X: Matrix): Matrix
Fit the model and transform data in one step.
X
Matrix
required
Training data of shape [nSamples, nFeatures]
Returns: Transformed data of shape [nSamples, nComponents]

inverseTransform

inverseTransform(X: Matrix): Matrix
Reconstruct original data from transformed components.
X
Matrix
required
Transformed data of shape [nSamples, nComponents]
Returns: Reconstructed data of shape [nSamples, nFeatures]

Properties

components_
Matrix | null
Right singular vectors, shape [nComponents, nFeatures]
explainedVariance_
Vector | null
Variance explained by each component
explainedVarianceRatio_
Vector | null
Percentage of variance explained by each component
singularValues_
Vector | null
The singular values corresponding to each component
nFeaturesIn_
number | null
Number of features seen during fit
nComponents_
number | null
Number of components extracted

Example

import { TruncatedSVD } from '@elucidate/elucidate';

const data = [
  [1, 2, 3, 4, 5],
  [6, 7, 8, 9, 10],
  [11, 12, 13, 14, 15],
  [16, 17, 18, 19, 20],
];

const svd = new TruncatedSVD({ 
  nComponents: 2,
  randomState: 42 
});

const transformed = svd.fitTransform(data);
console.log('Transformed:', transformed);
console.log('Explained variance ratio:', svd.explainedVarianceRatio_);
console.log('Singular values:', svd.singularValues_);

// Reconstruct data
const reconstructed = svd.inverseTransform(transformed);
console.log('Reconstructed:', reconstructed);

Build docs developers (and LLMs) love