nirs4all.analysis.transfer_utils module
Transfer Selection Utilities.
This module provides utility functions for preprocessing application, pipeline generation, and dataset handling in transfer learning scenarios.
Supports both object-based and string-based preprocessing definitions: - Object-based (recommended): Pass transformer instances directly - String-based (legacy): Use string names that resolve to base preprocessings
- nirs4all.analysis.transfer_utils.apply_single_preprocessing(X: ndarray, pp_name: str, preprocessings: dict[str, Any] | None = None) ndarray[source]
Apply a single preprocessing by name.
- Parameters:
X – Input data matrix (n_samples, n_features).
pp_name – Name of the preprocessing (e.g., “snv”, “d1”).
preprocessings – Optional dictionary of transforms. Uses base if None.
- Returns:
Transformed data matrix.
- nirs4all.analysis.transfer_utils.generate_object_augmentation_combinations(transforms: list[Any], max_order: int = 2) list[tuple[str, list[Any]]][source]
Generate augmentation combinations from transformer objects.
Object-based alternative to generate_augmentation_combinations.
- Parameters:
transforms – List of transformer objects or stacked lists.
max_order – Maximum number of transforms to combine.
- Returns:
List of (display_name, transforms_list) tuples.
- nirs4all.analysis.transfer_utils.generate_object_stacked_pipelines(transforms: list[Any], max_depth: int = 2) list[tuple[str, list[Any]]][source]
Generate stacked pipeline combinations from transformer objects.
Object-based alternative to generate_stacked_pipelines.
- Parameters:
transforms – List of transformer objects.
max_depth – Maximum pipeline depth.
- Returns:
List of (display_name, transforms_list) tuples.
Example
>>> transforms = [StandardNormalVariate(), FirstDerivative()] >>> pipelines = generate_object_stacked_pipelines(transforms, max_depth=2) >>> # Returns: [("StandardNormalVariate", [SNV()]), >>> # ("FirstDerivative", [D1()]), >>> # ("StandardNormalVariate>FirstDerivative", [SNV(), D1()]), >>> # ...]
- nirs4all.analysis.transfer_utils.generate_stacked_pipelines(preprocessings: dict[str, Any], max_depth: int = 2, exclude: list[str] | None = None) list[tuple[str, list[str], list[Any]]][source]
Generate stacked pipeline combinations.
- Parameters:
preprocessings – Dictionary of available transforms.
max_depth – Maximum pipeline depth (1 to max_depth).
exclude – List of preprocessing names to exclude.
- Returns:
List of (name, component_names, transforms) tuples.
Example
>>> pp = {"snv": snv_transform, "d1": d1_transform} >>> pipelines = generate_stacked_pipelines(pp, max_depth=2) >>> # Returns: [("snv", ["snv"], [snv]), ("d1", ["d1"], [d1]), >>> # ("snv>d1", ["snv", "d1"], [snv, d1]), >>> # ("d1>snv", ["d1", "snv"], [d1, snv])]
- nirs4all.analysis.transfer_utils.normalize_preprocessing_list(items: list[Any | str | None], registry: dict[str, Any] | None = None) list[Any][source]
Normalize a list of preprocessing items to transformer objects.
- Parameters:
items – List of transformer instances or string names.
registry – Optional name->object mapping.
- Returns:
List of transformer instances (None values filtered out).