FractionalShift#
- class chemotools.augmentation.FractionalShift(shift: float = 0.0, padding_mode: Literal['zeros', 'constant', 'extend', 'mirror', 'linear'] = 'linear', pad_value: float = 0.0, random_state: int | None = None)[source]
Bases:
TransformerMixin,OneToOneFeatureMixin,BaseEstimatorShift signals by a random fractional amount using cubic spline interpolation.
- Parameters:
shift (float, default=0.0) – Maximum absolute shift applied to each signal. A random shift is drawn uniformly from [-shift, +shift].
padding_mode ({'zeros', 'constant', 'wrap', 'extend', 'mirror', 'linear'}, default='linear') – Padding strategy for extrapolated values.
pad_value (float, default=0.0) – Used when padding_mode=’constant’.
random_state (int, RandomState instance or None, default=None) – Controls randomness.
- Variables:
n_features_in (int) – Number of features in the training data.
Examples
>>> from chemotools.augmentation import FractionalShift >>> from chemotools.datasets import load_fermentation_train >>> # Load sample data >>> X, _ = load_fermentation_train() >>> # Instantiate the transformer >>> transformer = FractionalShift(shift=2.0, padding_mode="linear") FractionalShift() >>> transformer.fit(X) >>> # Generate shifted data >>> X_shifted = transformer.transform(X)
- fit(X: ndarray, y=None) FractionalShift[source]
Fit the transformer to the input data. :param X: Training data. :type X: np.ndarray of shape (n_samples, n_features) :param y: Ignored. Present for API consistency. :type y: None
- Returns:
self – Fitted transformer.
- Return type:
FractionalShift
- Raises:
ValueError – If X is not a 2D array or contains non-finite values.
- transform(X: ndarray, y=None) ndarray[source]
Transform the input data by applying a random fractional shift to each signal. :param X: Input data to transform. :type X: np.ndarray of shape (n_samples, n_features) :param y: Ignored. Present for API consistency. :type y: None
- Returns:
X_transformed – Transformed data with applied shifts.
- Return type:
np.ndarray of shape (n_samples, n_features)
- Raises:
ValueError – If X has different number of features than the training data, or if an invalid padding mode is specified.