Calculator Base

GitHub Link to Code.

Abstract base class for decomposition calculators.

Defines the interface that all decomposition calculators must implement for consistency across different dimensionality reduction methods.

class mdxplain.decomposition.decomposition_type.interfaces.calculator_base.CalculatorBase(use_memmap: bool = False, cache_path: str = './cache', chunk_size: int = 2000)

Abstract base class for decomposition calculators.

Defines the interface that all decomposition calculators (PCA, KernelPCA, ContactKernelPCA) must implement for consistency across different dimensionality reduction methods.

Examples

>>> class MyCalculator(CalculatorBase):
...     def __init__(self, use_memmap: bool = False, cache_path: str = "./cache", chunk_size: int = 2000) -> None:
...         super().__init__(use_memmap, cache_path, chunk_size)
...     def compute(self, data, **kwargs):
...         # Implement computation logic
...         return transformed_data, metadata
__init__(use_memmap: bool = False, cache_path: str = './cache', chunk_size: int = 2000) None

Initialize the decomposition calculator.

Parameters

use_memmapbool, default=False

Whether to use memory mapping for large datasets

cache_pathstr, optional

Path for memory-mapped cache files

chunk_sizeint, optional

Size of chunks for incremental processing

Returns

None

Initializes calculator with specified configuration

Examples

>>> # Basic initialization
>>> calc = MyCalculator()
>>> # With memory mapping
>>> calc = MyCalculator(
...     use_memmap=True,
...     cache_path="./cache/decomp.dat",
...     chunk_size=1000
... )
abstractmethod compute(data: ndarray, **kwargs) Tuple[ndarray, Dict[str, Any]]

Compute decomposition of input data.

This method performs the actual dimensionality reduction computation and returns the transformed data along with metadata about the transformation process.

Parameters

datanumpy.ndarray

Input data matrix to decompose, shape (n_samples, n_features)

kwargsdict

Additional parameters specific to the decomposition method

Returns

Tuple[numpy.ndarray, Dict]

Tuple containing:

  • transformed_data: Decomposed data matrix (n_samples, n_components)

  • metadata: Dictionary with transformation information including hyperparameters, explained variance, components, etc.

Examples

>>> # Compute decomposition
>>> calc = MyCalculator()
>>> data = np.random.rand(100, 50)
>>> transformed, metadata = calc.compute(data, n_components=10)
>>> print(f"Transformed shape: {transformed.shape}")
>>> print(f"Explained variance: {metadata['explained_variance_ratio']}")