Decomposition Base#

base #

CLASS DESCRIPTION
Decomposition

Base class for all decomposition and dimensionality reduction methods.

Classes#

DecompositionResult #

Bases: NamedTuple

Named tuple to hold results of decomposition methods.

ATTRIBUTE DESCRIPTION
eigenvalues

Tensor of eigenvalues from the decomposition.

TYPE: Tensor

eigenvectors

Tensor of eigenvectors from the decomposition.

TYPE: Tensor

kernel

Kernel (similarity) matrix used in the decomposition, e.g., affinity, covariance.

TYPE: Tensor

Decomposition(kernel_fn: Kernel | str | None = None, kernel_kwargs: dict | None = None, distance_fn: PairwiseDistance | str | None = None, distance_kwargs: dict | None = None, score_fn: Callable | None = None) #

Bases: Estimator

Base class for all decomposition and dimensionality reduction methods.

Provides unified interface for spectral decomposition methods (PCA, Diffusion Maps, Laplacian Eigenmaps, etc.) with support for custom kernels, distance metrics, and scoring functions.

PARAMETER DESCRIPTION
kernel_fn

Kernel function for computing similarity matrices.

Options:

  • Kernel instance: Custom kernel object
  • "gaussian": Gaussian (RBF) kernel
  • "t": Student's t-distribution kernel
  • "adaptive_gaussian": Adaptive Gaussian kernel with learnable bandwidth
  • None: Defaults to "gaussian"

TYPE: Kernel | str | None, optional, by default None DEFAULT: None

kernel_kwargs

Parameters for kernel initialization (e.g., {"bw_method": "median"}).

TYPE: dict | None, optional, by default None DEFAULT: None

distance_fn

Distance metric for computing pairwise distances.

Options:

  • PairwiseDistance instance: Custom distance object
  • "euclidean": Euclidean (L2) distance
  • "covariance": Covariance-based distance
  • "mahalanobis": Mahalanobis distance
  • None: Defaults to "euclidean"

TYPE: PairwiseDistance | str | None, optional, by default None DEFAULT: None

distance_kwargs

Parameters for distance initialization.

TYPE: dict | None, optional, by default None DEFAULT: None

n_components

Number of components to extract. If None, determined automatically by the specific decomposition method.

TYPE: int | None, optional, by default None

score_fn

Custom scoring function with signature (X, X_reconstructed) -> float. If None, uses method-specific default scoring.

TYPE: Callable | None, optional, by default None DEFAULT: None

ATTRIBUTE DESCRIPTION
kernel_fn

Validated kernel function instance.

TYPE: Kernel

distance_fn

Validated distance function instance.

TYPE: PairwiseDistance

score_fn

Validated scoring function.

TYPE: Callable | None

in_features

Number of input features.

TYPE: int | None

out_features

Number of output features or components.

TYPE: int | None

See Also

spectre.core.Estimator : Parent class with fit/predict/score interface spectre.kernel.Kernel : Base class for kernel functions spectre.pairwise_distance.PairwiseDistance : Base class for distance metrics

Source code in spectre/decomposition/base.py
def __init__(
    self,
    kernel_fn: Kernel | str | None = None,
    kernel_kwargs: dict | None = None,
    distance_fn: PairwiseDistance | str | None = None,
    distance_kwargs: dict | None = None,
    score_fn: Callable | None = None,
) -> None:
    super().__init__()

    if kernel_fn is not None:
        self.kernel_fn = initialize_kernel_fn(kernel_fn, kernel_kwargs or {})

    if distance_fn is not None:
        self.distance_fn = initialize_distance_fn(
            distance_fn, distance_kwargs or {}
        )

    if score_fn is not None and not callable(score_fn):
        raise TypeError(
            f"Expected `score_fn` to be callable or None, but got {type(score_fn)}."
        )
    self.score_fn = score_fn

Functions#