This vignette documents bigPLSR’s kernel PLS
streaming backends for bigmemory::big.matrix inputs. We
provide two complementary streaming strategies:
Both strategies produce the same model up to floating point
round-off. Selection is automatic (see ?pls_fit) or can be
forced via the option
options(bigPLSR.kpls_gram = "rows" | "cols" | "auto").
Let X in R^{n x p}, Y in R^{n x m} be centered.
At component h, kernel-PLS uses the NIPALS-like fixed-point update
Coefficients after H components are
beta = W (P^T W)^{-1} Q^T,
yhat = 1 * mu_Y + (x - mu_X) beta.
The row-chunked implementation keeps X on disk and performs steps (2) and (4) with two passes over row blocks:
Loadings p are accumulated precisely like Pass A but with t instead of u.
cpp_kpls_stream_xxt(X_ptr, Y_ptr, ncomp, chunk_rows, chunk_cols, center, return_big)cpp_kpls_stream_cols(X_ptr, Y_ptr, ncomp, chunk_cols, center, return_big)pls_fit(..., backend = "bigmem", algorithm = "kernelpls", chunk_size, chunk_cols, ...)pls_fit() chooses the variant via
options(bigPLSR.kpls_gram) or heuristics when
"auto" is set (the default).
kpls_review vignette)