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']}")