nirs4all.operators.models.sklearn.pcr module

Principal Component Regression (PCR) for nirs4all.

A sklearn-compatible PCR estimator: PCA-based dimensionality reduction followed by ordinary least-squares linear regression on the principal components. Classic chemometrics baseline alongside PLS.

class nirs4all.operators.models.sklearn.pcr.PCR(n_components: int = 10)[source]

Bases: RegressorMixin, BaseEstimator

Principal Component Regression.

Fits a PCA on X then regresses Y on the retained scores using ordinary least squares.

Parameters:

n_components (int, default=10) – Number of principal components to retain.

fit(X: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str], y: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) → PCR[source]
predict(X: _Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | complex | bytes | str | _NestedSequence[complex | bytes | str]) → ndarray[tuple[Any, ...], dtype[floating]][source]
set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') → PCR

Configure whether metadata should be requested to be passed to the score method.

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 (see sklearn.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 to score if provided. The request is ignored if metadata is not provided.

  • False: metadata is not requested and the meta-estimator will not pass it to score.

  • 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.

Parameters:

sample_weight (str, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED) – Metadata routing for sample_weight parameter in score.

Returns:

self – The updated object.

Return type:

object