fused_sparse_pls — Fused-sparse PLS¶
Group: Sparse · Registry tolerance: 0.05
· Parity reference: paper-only (Yengo, L., Jacques, J., Biernacki, C. & Canouil, M. (2016). Variable clustering in high-dimensional linear regression: The R package clere. R Journal 8(1), 92-106. (Fused-sparse PLS variants have no widely installable R / Python port.))
Description¶
Fused sparse PLS (§7)
Parameters¶
Name |
Type |
Default |
Notes |
|---|---|---|---|
|
|
|
registry benchmark cell value |
|
|
|
registry benchmark cell value |
|
|
|
registry benchmark cell value |
Explanations¶
Bibliographic source¶
Implementation-specific heuristic inspired by fused sparsity; no canonical fused-lasso solver is implemented.
Mathematical principle¶
The routine delegates to the current group-sparse path with all variables in one group and then applies four fixed passes of neighbour averaging to adjacent coefficient rows. It neither minimizes an L1 plus total-variation objective nor calls the Condat fused-lasso algorithm described in the historical text.
Appropriate uses¶
Exploratory smoothing of adjacent regression coefficients for ordered spectral variables.
Limits and validation¶
This is four fixed neighbour-averaging passes, not a fused-lasso/total-variation optimizer; l1_lambda uses post-SIMPLS group shrinkage.
Implementation¶
l1_lambda shrinks the full predictive coefficient matrix as one group before four neighbour-averaging passes. fusion_lambda controls a smoothing heuristic, not a converged fused-lasso solution.
Sources and provenance¶
Current implementation: cpp/src/core/extra_pls.cpp.
API and bindings¶
C ABI (ABI 2): n4m_estimators_fused_sparse_pls_fit. Use the linked public header for the exact signature, configuration, and result handles.
Python: no current AST-verified public n4m re-export was found for this method. The linked C ABI above is the documented surface in this checkout.
R (source-verified): fused_sparse_pls_fit(X, Y, n_components, l1_lambda = 0.05, fusion_lambda = 0.05).
The source signature has additional required inputs, so no example call is fabricated.
MATLAB / Octave (source-verified): fused_sparse_pls(X, Y, n_components, l1_lambda, fusion_lambda).
The source signature has additional required inputs, so no example call is fabricated.
Registry parity references 📐
📜 Paper-only — no executable parity reference; the paper citation is recorded in Bibliographic source.
Benchmarks¶
Archived measurement identity. Backend labels in this table are the raw IDs recorded when the benchmark ran (including historical pls4all.* IDs). They preserve measurement provenance and do not describe a current public Python, R, or MATLAB binding; use the source-verified API and bindings section above for current entry points.
Adaptive wall-clock per cell measured against full_matrix.csv. Only backends that implement this method are listed; libraries without the method are omitted.
Verdict · ✓ ref / ≈ ref / ~ shape mark a reference-gate pass at strict / relaxed / qualitative tolerance · ✓ bind = archived binding-harness result agrees with the C++ baseline · ⇄ cross-check = documented by-design selector/RNG/model, noncanonical API/facade convention, or secondary oracle · ✗ divergent · ⚠ error · — not run. The fastest backend per column is marked 🏆.
| Backend | Parity | 200×50 (ms) |
|---|---|---|
| Python · archived pls4all benchmark | ||
pls4all.python | ✓ bind | 1.95 ms🏆 |
pls4all.sklearn | ✓ bind | 2.13 ms |
| R · archived pls4all benchmark | ||
pls4all.R | ✓ bind | 6.13 ms |
pls4all.R.formula | ✓ bind | 7.70 ms |
pls4all.R.mdatools | ✓ bind | 7.55 ms |
pls4all.R.pls | ✓ bind | 7.80 ms |
| Backend | Parity | 200×50 (ms) |
|---|---|---|
| Python · archived pls4all benchmark | ||
pls4all.python | ✓ bind | 1.88 ms🏆 |
pls4all.sklearn | ✓ bind | 2.09 ms |
| R · archived pls4all benchmark | ||
pls4all.R | ✓ bind | 6.14 ms |
pls4all.R.formula | ✓ bind | 7.73 ms |
pls4all.R.mdatools | ✓ bind | 8.04 ms |
pls4all.R.pls | ✓ bind | 7.53 ms |
| Backend | Parity | 200×50 (ms) |
|---|---|---|
| Python · archived pls4all benchmark | ||
pls4all.python | ✓ bind | 1.97 ms🏆 |
pls4all.sklearn | ✓ bind | 2.02 ms |
| R · archived pls4all benchmark | ||
pls4all.R | ✓ bind | 6.56 ms |
pls4all.R.formula | ✓ bind | 8.64 ms |
pls4all.R.mdatools | ✓ bind | 8.07 ms |
pls4all.R.pls | ✓ bind | 8.65 ms |
See also: benchmark overview · methods index · interactive dashboard