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#
Default grouping column used when building post-hoc eval specs. |
|
Label/group values that are treated as missing during eval alignment. |
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. |
|
Parse raw eval spec input into a validated list of spec dicts. |
Module Contents#
- coco_pipe.dim_reduction.config.METHODS = ('PCA', 'IncrementalPCA', 'DaskPCA', 'DaskTruncatedSVD', 'Isomap', 'LLE', 'MDS',...#
- coco_pipe.dim_reduction.config.get_reducer_class(method)#
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)#
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.
- Parameters:
data (Any)
- class coco_pipe.dim_reduction.config.StochasticReducerConfig(/, **data)#
Bases:
_StrictConfigModelMixin for reducers that expose a random seed.
- Parameters:
data (Any)
- class coco_pipe.dim_reduction.config.PCAConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for PCA.
- Parameters:
data (Any)
- method: Literal['PCA'] = 'PCA'#
- class coco_pipe.dim_reduction.config.IncrementalPCAConfig(/, **data)#
Bases:
BaseReducerConfigConfiguration for Incremental PCA.
- Parameters:
data (Any)
- method: Literal['IncrementalPCA'] = 'IncrementalPCA'#
- class coco_pipe.dim_reduction.config.DaskPCAConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Dask PCA.
- Parameters:
data (Any)
- method: Literal['DaskPCA'] = 'DaskPCA'#
- class coco_pipe.dim_reduction.config.DaskTruncatedSVDConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Dask TruncatedSVD.
- Parameters:
data (Any)
- method: Literal['DaskTruncatedSVD'] = 'DaskTruncatedSVD'#
- class coco_pipe.dim_reduction.config.UMAPConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for UMAP.
- Parameters:
data (Any)
- method: Literal['UMAP'] = 'UMAP'#
- class coco_pipe.dim_reduction.config.TSNEConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for TSNE.
- Parameters:
data (Any)
- method: Literal['TSNE'] = 'TSNE'#
- class coco_pipe.dim_reduction.config.PacmapConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Pacmap.
- Parameters:
data (Any)
- method: Literal['Pacmap'] = 'Pacmap'#
- class coco_pipe.dim_reduction.config.TrimapConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Trimap.
- Parameters:
data (Any)
- method: Literal['Trimap'] = 'Trimap'#
- class coco_pipe.dim_reduction.config.PHATEConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for PHATE.
- Parameters:
data (Any)
- method: Literal['PHATE'] = 'PHATE'#
- class coco_pipe.dim_reduction.config.IsomapConfig(/, **data)#
Bases:
BaseReducerConfigConfiguration for Isomap.
- Parameters:
data (Any)
- method: Literal['Isomap'] = 'Isomap'#
- class coco_pipe.dim_reduction.config.LLEConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for LLE.
- Parameters:
data (Any)
- method: Literal['LLE'] = 'LLE'#
- class coco_pipe.dim_reduction.config.MDSConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for MDS.
- Parameters:
data (Any)
- method: Literal['MDS'] = 'MDS'#
- class coco_pipe.dim_reduction.config.SpectralEmbeddingConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Spectral Embedding.
- Parameters:
data (Any)
- method: Literal['SpectralEmbedding'] = 'SpectralEmbedding'#
- class coco_pipe.dim_reduction.config.DMDConfig(/, **data)#
Bases:
BaseReducerConfigConfiguration for DMD.
- Parameters:
data (Any)
- method: Literal['DMD'] = 'DMD'#
- class coco_pipe.dim_reduction.config.TRCAConfig(/, **data)#
Bases:
BaseReducerConfigConfiguration for TRCA.
- Parameters:
data (Any)
- method: Literal['TRCA'] = 'TRCA'#
- class coco_pipe.dim_reduction.config.TopologicalAEConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Topological Autoencoder.
- Parameters:
data (Any)
- method: Literal['TopologicalAE'] = 'TopologicalAE'#
- class coco_pipe.dim_reduction.config.IVISConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for IVIS.
- Parameters:
data (Any)
- method: Literal['IVIS'] = 'IVIS'#
- class coco_pipe.dim_reduction.config.ParametricUMAPConfig(/, **data)#
Bases:
BaseReducerConfig,StochasticReducerConfigConfiguration for Parametric UMAP.
- Parameters:
data (Any)
- method: Literal['ParametricUMAP'] = 'ParametricUMAP'#
- class coco_pipe.dim_reduction.config.EvaluationConfig(/, **data)#
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.
data (Any)
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'
- to_score_kwargs()#
Return scoring keyword arguments for
evaluate_embedding.Maps the config’s evaluation fields onto the keyword arguments consumed by
coco_pipe.dim_reduction.evaluation.core.evaluate_embedding()(andcoco_pipe.dim_reduction.core.DimReduction.score()). Ranking fields (selection_metric,selection_k,tie_breakers) are not included here — they drivecoco_pipe.dim_reduction.evaluation.core.MethodSelector.rank_methods().- Returns:
Mapping with
metrics,k_values, andseparation_method.- Return type:
- coco_pipe.dim_reduction.config.DEFAULT_EVAL_GROUP_COL: str = 'patient_group_id'#
Default grouping column used when building post-hoc eval specs.
- coco_pipe.dim_reduction.config.MISSING_EVAL_VALUES: frozenset[str]#
Label/group values that are treated as missing during eval alignment.
- coco_pipe.dim_reduction.config.parse_eval_specs(raw_specs, subject_col)#
Parse raw eval spec input into a validated list of spec dicts.
raw_specs may be:
None— returns an empty lista
listof spec dictsa
dictwith an"evals"key whose value is the list
Each spec dict must have at least
"name"and"target_col"keys. Optional keys:"group_col"(defaults toDEFAULT_EVAL_GROUP_COL),"filters"(list of{column, values}dicts),"label_map"(string→string mapping).- Parameters:
raw_specs (Any | None) – Raw YAML/JSON eval spec input.
subject_col (str) – Subject identifier column name (reserved for future alignment checks).
- Returns:
Normalised eval spec dicts, ready for use in
coco_pipe.dim_reduction.pipeline.run_eval().- Return type:
- Raises:
ValueError – On structural violations (wrong type, missing required keys, …).