nirs4all.synthesis.targets module
Target generation for synthetic NIRS datasets.
This module provides tools for generating target variables for regression and classification tasks, with configurable distributions and class separation.
Example
>>> from nirs4all.synthesis.targets import TargetGenerator
>>>
>>> generator = TargetGenerator(random_state=42)
>>>
>>> # Regression targets
>>> y = generator.regression(
... n_samples=100,
... concentrations=C, # From spectra generation
... distribution="lognormal",
... range=(0, 100)
... )
>>>
>>> # Classification with separable classes
>>> y = generator.classification(
... n_samples=100,
... concentrations=C,
... n_classes=3,
... separation=2.0
... )
- class nirs4all.synthesis.targets.ClassSeparationConfig(separation: float = 1.5, method: Literal['component', 'shift', 'intensity'] = 'component', noise: float = 0.1)[source]
Bases:
objectConfiguration for class separation in classification tasks.
- Variables:
separation (float) – Separation factor (higher = more separable). Values around 0.5-1.0 create overlapping classes. Values around 2.0-3.0 create well-separated classes.
method (Literal['component', 'shift', 'intensity']) – How to create class differences: - “component”: Different component concentration profiles per class. - “shift”: Systematic spectral shifts between classes. - “intensity”: Different overall intensity levels.
noise (float) – Noise level to add to class boundaries.
- nirs4all.synthesis.targets.generate_classification_targets(n_samples: int, concentrations: ndarray | None = None, *, random_state: int | None = None, n_classes: int = 2, class_weights: list[float] | None = None, separation: float = 1.5) ndarray[source]
Convenience function for generating classification targets.
- Parameters:
n_samples – Number of samples.
concentrations – Component concentrations (optional).
random_state – Random seed.
n_classes – Number of classes.
class_weights – Class proportions.
separation – Class separation factor.
- Returns:
Integer class labels array.
- nirs4all.synthesis.targets.generate_regression_targets(n_samples: int, concentrations: ndarray | None = None, *, random_state: int | None = None, distribution: Literal['uniform', 'normal', 'lognormal', 'bimodal'] = 'uniform', range: tuple[float, float] | None = None) ndarray[source]
Convenience function for generating regression targets.
- Parameters:
n_samples – Number of samples.
concentrations – Component concentrations (optional).
random_state – Random seed.
distribution – Target distribution type.
range – Value range (min, max).
- Returns:
Target values array.