aom_chain_ridge_pls — n4m.model_selection.aom_search.aom_chain_ridge_pls

Namespace: n4m.model_selection.aom_search · Fully-qualified: n4m.model_selection.aom_search.aom_chain_ridge_pls · Catalog id: aom_pop.aom_chain_ridge_pls

API surface

C ABI: no standalone exported symbol is declared for this method.

Python (verified public re-export): from n4m.model_selection.aom_search import aom_chain_ridge_pls

Signature: aom_chain_ridge_pls(X, y, chains = None, *, profile: str = 'compact', families: dict | None = None, templates: Sequence[Sequence[str]] | None = None, max_chains: int | None = None, n_components: int = 2, pls_components: Sequence[int] | None = None, ridge_lambda: float | None = None, ridge_lambdas: Sequence[float] = (0.0, 0.1, 1.0, 10.0), cv: int = 5, fold_ids = None, center_x: bool = True, center_y: bool = True)

R: no current source-verified entry point was found for this catalog method.

MATLAB / Octave: no current source-verified entry point was found for this catalog method.

Parameters

Name

Type

Default

X

—

required

y

—

required

chains

—

None

profile

str

'compact'

families

dict | None

None

templates

Sequence[Sequence[str]] | None

None

max_chains

int | None

None

n_components

int

2

pls_components

Sequence[int] | None

None

ridge_lambda

float | None

None

ridge_lambdas

Sequence[float]

(0.0, 0.1, 1.0, 10.0)

cv

int

5

fold_ids

—

None

center_x

bool

True

center_y

bool

True

Explanations

Bibliographic source

No canonical publication defines this strict-chain Ridge-PLS product surface. Beurier, G. et al. (2026). AOM-PLS / POP-PLS paper companion, arXiv:2605.13587, https://arxiv.org/abs/2605.13587. The product variants below are implementation-specific extensions; the paper does not by itself specify their ABI-2 orchestration.

Mathematical principle

For every declared strict-linear chain, PLS component count, and Ridge penalty, fit within each CV fold and select the lowest validation RMSE. Composition of linear chain maps permits the final Ridge-PLS coefficients to be expressed in raw input space.

Appropriate uses

Selecting among a small, auditable set of linear preprocessing chains while retaining a single coefficient vector for deployment.

Limits and validation

Only chains that are genuinely linear and sample-independent can be folded back exactly. Cross-validation chooses among many candidates and therefore needs an outer assessment; it does not cover MSC/SNV/EMSC or nonlinear candidate families.

Implementation

n4m.model_selection.aom_search.aom_chain_ridge_pls and AOMChainRidgePLSRegressor; there is no standalone C ABI entry point.

Sources and provenance

https://github.com/GBeurier/nirs4all-methods/blob/main/cpp/src/core/aom_chain_ridge_pls.cpp; https://github.com/GBeurier/nirs4all-methods/blob/main/bindings/python/src/n4m/model_selection/aom_search.py

Catalog note

Native L2-augmented-design Ridge-PLS on strict/raw-base chains (core fit_aom_chain_ridge_pls), distinct from donor Ridge-on-PLS-scores SingleChainPLSRidge; not a parity port. It applies each strict-linear AOM chain sequentially (default: the compact native chain bank), selects one chain plus PLS component count and Ridge-PLS lambda by train-fold CV, fits the native ridge-augmented SIMPLS, and folds the final coefficients back to original-input input_coefficients plus intercept (affine N4MM state). It excludes SNV, MSC, EMSC, OSC, row-reference-dependent preprocessing, nonlinear lifts, kernels and dataset/source routing.

Timing benchmark: benchmarks/cross_binding/bench_aom_chain_ridge_pls_timing.py

See also: methods index.