nirs4all.operators.transforms.scalers module
- class nirs4all.operators.transforms.scalers.Derivate(order=1, delta=1, copy=True)[source]
Bases:
TransformerMixin,BaseEstimator- set_transform_request(*, copy: bool | None | str = '$UNCHANGED$') Derivate
Configure whether metadata should be requested to be passed to the
transformmethod.Note that this method is only relevant when this estimator is used as a sub-estimator within a meta-estimator and metadata routing is enabled with
enable_metadata_routing=True(seesklearn.set_config()). Please check the User Guide on how the routing mechanism works.The options for each parameter are:
True: metadata is requested, and passed totransformif provided. The request is ignored if metadata is not provided.False: metadata is not requested and the meta-estimator will not pass it totransform.None: metadata is not requested, and the meta-estimator will raise an error if the user provides it.str: metadata should be passed to the meta-estimator with this given alias instead of the original name.
The default (
sklearn.utils.metadata_routing.UNCHANGED) retains the existing request. This allows you to change the request for some parameters and not others.Added in version 1.3.
- class nirs4all.operators.transforms.scalers.LocalStandardNormalVariate(window=11, pad_mode='reflect', constant_values=0.0, copy=True)[source]
Bases:
TransformerMixin,BaseEstimatorLocal Standard Normal Variate (LSNV).
Per-sample local normalization with a sliding window along features. For each sample and feature j:
mean_w = mean(X[…, j-w//2 : j+w//2+1]) std_w = std (X[…, j-w//2 : j+w//2+1]) X’[j] = (X[j] - mean_w) / std_w
- Parameters:
Notes
Operates row-wise (axis=1). Input must be (n_samples, n_features).
std_w==0 → divide by 1 to avoid NaN.
- fit_transform(X, y=None)[source]
Fit to data, then transform it.
Fits transformer to X and y with optional parameters fit_params and returns a transformed version of X.
- Parameters:
X (array-like of shape (n_samples, n_features)) – Input samples.
y (array-like of shape (n_samples,) or (n_samples, n_outputs), default=None) – Target values (None for unsupervised transformations).
**fit_params (dict) – Additional fit parameters. Pass only if the estimator accepts additional params in its fit method.
- Returns:
X_new – Transformed array.
- Return type:
- class nirs4all.operators.transforms.scalers.Normalize(feature_range=(-1, 1), *, copy=True)[source]
Bases:
TransformerMixin,BaseEstimatorNormalize spectrum using either custom range of linalg normalization
- Parameters:
feature_range (tuple (min, max), default=(-1, -1)) – Desired range of transformed data. If range min and max equals -1, linalg normalization is applied, otherwise user defined normalization is applied
copy (bool, default=True) – Set to False to perform inplace row normalization and avoid a copy (if the input is already a numpy array).
- fit(X, y=None)[source]
Fit the Normalize transformer on the training data.
- Parameters:
X (array-like of shape (n_samples, n_features)) – The training data.
y (None) – Ignored variable.
- Returns:
self – Returns the instance itself.
- Return type:
- inverse_transform(X)[source]
Transform the normalized data back to the original representation.
- Parameters:
X (array-like of shape (n_samples, n_features)) – The normalized data to be transformed back.
- Returns:
X – The inverse transformed data.
- Return type:
ndarray of shape (n_samples, n_features)
- partial_fit(X, y=None)[source]
Perform incremental fit on the training data.
- Parameters:
X (array-like of shape (n_samples, n_features)) – The training data.
y (None) – Ignored variable.
- Returns:
self – Returns the instance itself.
- Return type:
- transform(X)[source]
Transform the input data.
- Parameters:
X (array-like of shape (n_samples, n_features)) – The input data to be transformed.
- Returns:
X – The transformed data.
- Return type:
ndarray of shape (n_samples, n_features)
- class nirs4all.operators.transforms.scalers.RobustStandardNormalVariate(axis=1, with_center=True, with_scale=True, k=1.4826, copy=True)[source]
Bases:
TransformerMixin,BaseEstimatorRobust Standard Normal Variate (RSNV).
- Per-sample robust centering and scaling using median and MAD:
med = median(X, axis=1, keepdims=True) mad = median(|X - med|, axis=1, keepdims=True) X’ = (X - med) / (k * mad)
- Parameters:
axis (int, default=1) – 1 for row-wise (spectroscopy default). 0 for column-wise.
with_center (bool, default=True) – If True, subtract median.
with_scale (bool, default=True) – If True, divide by k * MAD.
k (float, default=1.4826) – Consistency constant to make MAD a robust estimator of std for Gaussian data.
copy (bool, default=True) – If False, try in-place.
Notes
MAD==0 → divide by 1 to avoid NaN.
- fit_transform(X, y=None)[source]
Fit to data, then transform it.
Fits transformer to X and y with optional parameters fit_params and returns a transformed version of X.
- Parameters:
X (array-like of shape (n_samples, n_features)) – Input samples.
y (array-like of shape (n_samples,) or (n_samples, n_outputs), default=None) – Target values (None for unsupervised transformations).
**fit_params (dict) – Additional fit parameters. Pass only if the estimator accepts additional params in its fit method.
- Returns:
X_new – Transformed array.
- Return type:
- class nirs4all.operators.transforms.scalers.SimpleScale(copy=True)[source]
Bases:
TransformerMixin,BaseEstimator
- class nirs4all.operators.transforms.scalers.StandardNormalVariate(axis=1, with_mean=True, with_std=True, ddof=0, copy=True)[source]
Bases:
TransformerMixin,BaseEstimatorStandard Normal Variate (SNV) transformation.
SNV is a row-wise normalization technique commonly used in spectroscopy to remove scatter effects. Each sample (row) is centered and scaled independently.
For each sample: SNV = (X - mean(X)) / std(X)
- Parameters:
axis (int, default=1) – Axis along which to compute mean and standard deviation. - axis=1: Row-wise (default, standard SNV behavior for spectroscopy) - axis=0: Column-wise (equivalent to StandardScaler)
with_mean (bool, default=True) – If True, center the data before scaling.
with_std (bool, default=True) – If True, scale the data to unit variance.
ddof (int, default=0) – Delta Degrees of Freedom for standard deviation calculation.
copy (bool, default=True) – If False, try to avoid a copy and do inplace scaling instead.
Examples
>>> from nirs4all.operators.transforms import StandardNormalVariate >>> import numpy as np >>> X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=float) >>> snv = StandardNormalVariate() >>> X_transformed = snv.fit_transform(X)
- fit(X, y=None)[source]
Fit the StandardNormalVariate transformer.
For SNV, this is a no-op as the transformation is computed independently for each sample.
- Parameters:
X (array-like of shape (n_samples, n_features)) – The training data.
y (None) – Ignored variable.
- Returns:
self – Returns the instance itself.
- Return type:
- fit_transform(X, y=None)[source]
Fit to data, then transform it.
- Parameters:
X (array-like of shape (n_samples, n_features)) – The input data.
y (None) – Ignored variable.
- Returns:
X_transformed – The transformed data.
- Return type:
ndarray of shape (n_samples, n_features)
- transform(X)[source]
Perform SNV transformation.
- Parameters:
X (array-like of shape (n_samples, n_features)) – The input data to be transformed.
- Returns:
X_transformed – The transformed data.
- Return type:
ndarray of shape (n_samples, n_features)
- nirs4all.operators.transforms.scalers.derivate(spectra, order=1, delta=1)[source]
Computes Nth order derivatives with the desired spacing using numpy.gradient.
- Parameters:
spectra (numpy.ndarray) – NIRS data matrix.
order (float, optional) – Order of the derivation, by default 1.
delta (int, optional) – Delta of the derivative (in samples), by default 1.
- Returns:
spectra – Derived NIR spectra.
- Return type:
- nirs4all.operators.transforms.scalers.norml(spectra, feature_range=(-1, 1))[source]
Perform spectral normalization with user-defined limits.
- Parameters:
spectra (numpy.ndarray) – NIRS data matrix.
feature_range (tuple (min, max), default=(-1, 1)) – Desired range of transformed data. If range min and max equals -1, linalg normalization is applied; otherwise, user bounds-defined normalization is applied.
- Returns:
spectra – Normalized NIR spectra.
- Return type:
- nirs4all.operators.transforms.scalers.spl_norml(spectra)[source]
Perform simple spectral normalization.
- Parameters:
spectra (numpy.ndarray) – NIRS data matrix.
- Returns:
spectra – Normalized NIR spectra.
- Return type: