coco_pipe.dim_reduction.config¶
Strict configuration models and reducer registry for the dim-reduction module.
This module defines:
canonical reducer names and lazy registry lookup
strict pydantic configs for each supported reducer
evaluation configuration with early validation for metric and ranking choices
The config layer follows the same explicit design as the rest of the module: exact method names, no aliasing, no compatibility wrappers, and no permissive extra fields.
Author: Hamza Abdelhedi (hamza.abdelhedi@umontreal.ca)
Attributes¶
Classes¶
Base configuration shared by all reducer configs. |
|
Mixin for reducers that expose a random seed. |
|
Configuration for PCA. |
|
Configuration for Incremental PCA. |
|
Configuration for Dask PCA. |
|
Configuration for Dask TruncatedSVD. |
|
Configuration for UMAP. |
|
Configuration for TSNE. |
|
Configuration for Pacmap. |
|
Configuration for Trimap. |
|
Configuration for PHATE. |
|
Configuration for Isomap. |
|
Configuration for LLE. |
|
Configuration for MDS. |
|
Configuration for Spectral Embedding. |
|
Configuration for DMD. |
|
Configuration for TRCA. |
|
Configuration for Topological Autoencoder. |
|
Configuration for IVIS. |
|
Configuration for Parametric UMAP. |
|
Configuration for post-hoc evaluation and method comparison. |
Functions¶
|
Return the reducer class registered for one canonical method name. |
Module Contents¶
- coco_pipe.dim_reduction.config.METHODS = ('PCA', 'IncrementalPCA', 'DaskPCA', 'DaskTruncatedSVD', 'Isomap', 'LLE', 'MDS',...¶
- coco_pipe.dim_reduction.config.get_reducer_class(method: str)[source]¶
Return the reducer class registered for one canonical method name.
- Parameters:
method (str) – Canonical public name of the reduction method.
- Returns:
The reducer class (subclass of BaseReducer).
- Return type:
class
- Raises:
ValueError – If
methodis not one of the canonical names inMETHODS.ImportError – If the reducer backend cannot be imported.
Notes
Registry lookup is exact and case-sensitive. The dim-reduction module does not support aliasing or case normalization.
See also
METHODSCanonical public method names accepted by the registry.
BaseReducerConfigBase type for typed reducer configuration objects.
Examples
>>> cls = get_reducer_class("PCA") >>> cls.__name__ 'PCAReducer'
- class coco_pipe.dim_reduction.config.BaseReducerConfig(/, **data: Any)[source]¶
Bases:
_StrictConfigModelBase configuration shared by all reducer configs.
Notes
All reducer configs are strict. Unknown fields are rejected at parse time. Subclasses must expose a canonical
methodliteral and may overrideto_reducer_kwargs()when the reducer constructor needs renamed fields.See also
get_reducer_classRegistry lookup for canonical method names.
EvaluationConfigPost-hoc scoring and ranking configuration.
- n_components: int = None¶
- class coco_pipe.dim_reduction.config.StochasticReducerConfig(/, **data: Any)[source]¶
Bases:
_StrictConfigModelMixin for reducers that expose a random seed.
- random_state: int | None = None¶
- class coco_pipe.dim_reduction.config.PCAConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for PCA.
- method: Literal['PCA'] = 'PCA'¶
- whiten: bool = None¶
- svd_solver: str = None¶
- class coco_pipe.dim_reduction.config.IncrementalPCAConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfigConfiguration for Incremental PCA.
- method: Literal['IncrementalPCA'] = 'IncrementalPCA'¶
- batch_size: int | None = None¶
- whiten: bool = None¶
- class coco_pipe.dim_reduction.config.DaskPCAConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Dask PCA.
- method: Literal['DaskPCA'] = 'DaskPCA'¶
- svd_solver: str = None¶
- class coco_pipe.dim_reduction.config.DaskTruncatedSVDConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Dask TruncatedSVD.
- method: Literal['DaskTruncatedSVD'] = 'DaskTruncatedSVD'¶
- algorithm: str = None¶
- class coco_pipe.dim_reduction.config.UMAPConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for UMAP.
- method: Literal['UMAP'] = 'UMAP'¶
- n_neighbors: int = None¶
- min_dist: float = None¶
- metric: str = None¶
- n_epochs: int | None = None¶
- spread: float = None¶
- set_op_mix_ratio: float = None¶
- class coco_pipe.dim_reduction.config.TSNEConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for TSNE.
- method: Literal['TSNE'] = 'TSNE'¶
- perplexity: float = None¶
- early_exaggeration: float = None¶
- learning_rate: float | str = None¶
- max_iter: int = None¶
- init: str = None¶
- class coco_pipe.dim_reduction.config.PacmapConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Pacmap.
- method: Literal['Pacmap'] = 'Pacmap'¶
- n_neighbors: int = None¶
- MN_ratio: float = None¶
- FP_ratio: float = None¶
- nn_backend: str = None¶
- init: str = None¶
- class coco_pipe.dim_reduction.config.TrimapConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Trimap.
- method: Literal['Trimap'] = 'Trimap'¶
- n_inliers: int = None¶
- n_outliers: int = None¶
- n_random: int = None¶
- class coco_pipe.dim_reduction.config.PHATEConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for PHATE.
- method: Literal['PHATE'] = 'PHATE'¶
- knn: int = None¶
- decay: int = None¶
- t: int | str = None¶
- class coco_pipe.dim_reduction.config.IsomapConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfigConfiguration for Isomap.
- method: Literal['Isomap'] = 'Isomap'¶
- n_neighbors: int = None¶
- metric: str = None¶
- p: int = None¶
- class coco_pipe.dim_reduction.config.LLEConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for LLE.
- method: Literal['LLE'] = 'LLE'¶
- n_neighbors: int = None¶
- lle_method: str = None¶
- class coco_pipe.dim_reduction.config.MDSConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for MDS.
- method: Literal['MDS'] = 'MDS'¶
- metric: bool = None¶
- n_init: int = None¶
- max_iter: int = None¶
- dissimilarity: str = None¶
- class coco_pipe.dim_reduction.config.SpectralEmbeddingConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Spectral Embedding.
- method: Literal['SpectralEmbedding'] = 'SpectralEmbedding'¶
- affinity: str = None¶
- gamma: float | None = None¶
- class coco_pipe.dim_reduction.config.DMDConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfigConfiguration for DMD.
- method: Literal['DMD'] = 'DMD'¶
- force_transpose: bool = None¶
- tlsq_rank: int = None¶
- exact: bool = None¶
- opt: bool = None¶
- class coco_pipe.dim_reduction.config.TRCAConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfigConfiguration for TRCA.
- method: Literal['TRCA'] = 'TRCA'¶
- sfreq: float = None¶
- filterbank: list | None = None¶
- class coco_pipe.dim_reduction.config.TopologicalAEConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Topological Autoencoder.
- method: Literal['TopologicalAE'] = 'TopologicalAE'¶
- lam: float = None¶
- lr: float = None¶
- batch_size: int = None¶
- epochs: int = None¶
- device: str = None¶
- verbose: int = None¶
- class coco_pipe.dim_reduction.config.IVISConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for IVIS.
- method: Literal['IVIS'] = 'IVIS'¶
- k: int = None¶
- model: str = None¶
- n_epochs_without_progress: int = None¶
- supervise_metric: str = None¶
- class coco_pipe.dim_reduction.config.ParametricUMAPConfig(/, **data: Any)[source]¶
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Parametric UMAP.
- method: Literal['ParametricUMAP'] = 'ParametricUMAP'¶
- n_neighbors: int = None¶
- min_dist: float = None¶
- metric: str = None¶
- n_epochs: int | None = None¶
- batch_size: int = None¶
- verbose: bool = None¶
- class coco_pipe.dim_reduction.config.EvaluationConfig(/, **data: Any)[source]¶
Bases:
_StrictConfigModelConfiguration for post-hoc evaluation and method comparison.
- Parameters:
metrics (list of str, optional) – Metric families to compute. Must use canonical evaluator metric names.
k_range (list of int, optional) – Neighborhood sizes used for standard structure-preservation metrics.
selection_metric (str, optional) – Primary ranking metric. Must be one of the supported ranking metrics and also appear in
metrics.selection_k (int, optional) – Neighborhood size used when ranking a k-scoped metric.
tie_breakers (list of str, optional) – Additional ranking metrics applied in order. Each value must also be present in
metrics.separation_method (str, default="centroid") – Separation definition used for trajectory separation scoring.
Notes
EvaluationConfigvalidates semantic consistency at parse time. Invalid metric names, duplicate entries, invalid separation methods, and ranking metrics that are not part ofmetricsall fail early.See also
coco_pipe.dim_reduction.evaluation.core.evaluate_embeddingPure evaluator that consumes these settings.
coco_pipe.dim_reduction.evaluation.core.MethodSelectorPost-hoc collector and ranker for scored reducers.
Examples
>>> config = EvaluationConfig( ... metrics=["trustworthiness", "continuity"], ... k_range=[5, 10], ... selection_metric="trustworthiness", ... selection_k=10, ... tie_breakers=["continuity"], ... ) >>> config.selection_metric 'trustworthiness'
- metrics: list[str] = None¶
- k_range: list[int] = None¶
- selection_metric: str | None = None¶
- selection_k: int | None = None¶
- tie_breakers: list[str] = None¶
- separation_method: str = None¶
- _validate_metric_dependencies() EvaluationConfig[source]¶