Freedom251 › Statistical Analysis Software
IKPLS

What IKPLS is
IKPLS is a free Python package for partial least squares modeling, intended for researchers and practitioners, including work with large datasets. It implements Improved Kernel PLS Algorithms 1 and 2 through NumPy CPU code and optional JAX code for CPUs, GPUs, and TPUs. The NumPy implementation includes a scikit-learn-conformant PLS wrapper for pipelines and cross-validation tools. JAX implementations support end-to-end differentiation, allowing PLS to pass gradients when used in a deep-learning model. A fast cross-validation method is described as mathematically equivalent to classical cross-validation. It can center and scale columns from training-set statistics to avoid validation leakage and apply sample-wise preprocessing such as convolution. NumPy and JAX versions support sample-weighted modeling, transform methods to score space, and inverse transforms for reconstruction. Documentation and examples cover fitting, prediction, and cross-validation. Installation uses pip, with an optional JAX extra; Python 3.10 through 3.14 is listed as required.
Who it suits
IKPLS suits researchers and practitioners doing PLS modeling, especially with large datasets. It is also relevant to users who need scikit-learn pipelines, accelerator support, weighting, or differentiable JAX models.
What it does well
- Free package with Apache-2.0 license
- CPU, GPU, and TPU implementations
- Scikit-learn-conformant wrapper
- Fast cross-validation with leakage-aware preprocessing
- Supports weighted models and reconstruction transforms
What to know first
- Requires Python 3.10 through 3.14
- JAX implementations require an optional extra
- Desktop package requires Python installation
Verdict
IKPLS provides PLS algorithms with NumPy and optional JAX implementations, plus scikit-learn integration and accelerated computation. Its preprocessing, weighting, transformation, and differentiation features cover varied modeling workflows.
Facts from IKPLS's own pages
- Algorithms
- It implements Improved Kernel PLS Algorithms 1 and 2 for CPU, GPU, and TPU use. · ikpls.readthedocs.io, 12 Oct 2026
- Audience
- The project describes its intended users as researchers and practitioners doing PLS modeling. · ikpls.readthedocs.io, 12 Oct 2026
- Compute
- Its NumPy implementations run on CPUs, and its JAX implementations support CPUs, GPUs, and TPUs. · ikpls.readthedocs.io, 12 Oct 2026
- Deployment
- desktop · ikpls.readthedocs.io, 23 Sept 2026
- Differentiability
- The JAX implementations are end-to-end differentiable, allowing gradient propagation when PLS is used as a layer in a deep learning model. · ikpls.readthedocs.io, 12 Oct 2026
- Documentation and examples
- The project provides online documentation and examples covering fitting, prediction, and cross-validation with NumPy, JAX, and scikit-learn. · ikpls.readthedocs.io, 12 Oct 2026
- Fast cross-validation
- The package includes a fast cross-validation algorithm described as mathematically equivalent to classical cross-validation and quicker to run. · ikpls.readthedocs.io, 12 Oct 2026
- Free plan
- Yes · ikpls.readthedocs.io, 23 Sept 2026
- Installation
- The package installs with pip using `pip3 install ikpls`; JAX implementations require the optional `jax` extra. · ikpls.readthedocs.io, 12 Oct 2026
- Installation requirement
- PyPI lists the requirement as Python >=3.10 and <3.15. · pypi.org, 12 Oct 2026
- JAX
- Optional JAX implementations run on CPU, GPU, and TPU and support end-to-end differentiation. · ikpls.readthedocs.io, 12 Oct 2026
- License
- PyPI lists the package under the Apache-2.0 license. · pypi.org, 12 Oct 2026
- NumPy and scikit-learn
- The NumPy CPU implementation includes a scikit-learn-conformant PLS wrapper that works with scikit-learn pipelines and cross-validation. · ikpls.readthedocs.io, 12 Oct 2026
- Preprocessing
- Fast cross-validation handles column-wise centering and scaling using training-set statistics to avoid validation-set data leakage, as well as sample-wise preprocessing such as convolution. · ikpls.readthedocs.io, 12 Oct 2026
- Purpose
- IKPLS is a Python package for fast partial least squares modeling, aimed at researchers and practitioners, particularly those working with large datasets. · ikpls.readthedocs.io, 12 Oct 2026
- Regression models
- Yes · ikpls.readthedocs.io, 23 Sept 2026
- Sample weights
- The NumPy and JAX implementations support sample-weighted PLS modeling. · ikpls.readthedocs.io, 12 Oct 2026
- scikit-learn integration
- The scikit-learn-conformant PLS wrapper can be used with scikit-learn pipelines and cross-validation tools. · ikpls.readthedocs.io, 12 Oct 2026
- Scripting support
- Yes · ikpls.readthedocs.io, 23 Sept 2026
- Support
- The contribution guidelines direct users with questions or bug reports to search or open a GitHub issue. · ikpls.readthedocs.io, 12 Oct 2026
- Transformations
- NumPy and JAX implementations provide transform methods for dimensionality reduction to score space and inverse_transform methods for reconstruction. · ikpls.readthedocs.io, 12 Oct 2026
- Weighted modeling
- The package supports sample-weighted PLS modeling. · ikpls.readthedocs.io, 12 Oct 2026
Where IKPLS stands on Freedom251
- Statistical Analysis Software#52 of 106