Skip to main content

Invariant Coordinate Selection (ICS) for multivariate data analysis.

Project description

ICSpyLab

Overview

Invariant Coordinate Selection (ICS) is a data transformation method. It transforms the data, via the simultaneous diagonalization of two scatter matrices, into an invariant coordinate system or independent components, depending on the underlying assumptions. It is particularly useful for dimension reduction. Unlike PCA, ICS is not based on variance maximization but on the maximization/minimization of a generalized kurtosis, and it is invariant not only to orthogonal data transformations but to any affine transformation.

This package brings the main functionalities of the ICS R package to Python, offering tools for identifying and selecting invariant coordinates in multivariate data. It includes various covariance estimators, transformation settings, and plotting utilities. Our extensive testing ensures results consistent with the R package, making it easy for users to transition from R to Python or start fresh with ICS.

Check out the documentation for more details.

Installation

Install the package using pip:

pip install icspylab

Usage

from icspylab import ICS, cov, covW
from sklearn.datasets import load_iris

# Load dataset
iris = load_iris()
X = iris.data

# Instantiate ICS object
# ics = ICS() # default parameters
ics = ICS(S1=cov, S2=covW, algorithm='standard', S2_args={'alpha': 1, 'cf': 2})

# Fit and transform the ICS model (equivalent of the function ICS-S3() from the R package ICS)
ics.fit_transform(X)

# Printing a summary
ics.describe()

Examples

All examples and figures shown in the documentation are reproducible and available as standalone Python scripts in the examples/ directory.

🤝 Contributing

We welcome contributions of all kinds, including bug fixes, new features, and documentation improvements.

To get started, please check out our CONTRIBUTING.md guide.

Testing

The default CI workflow executes the full testing suite on Linux and macOS, including validation against the reference R implementation.

On Windows, the CI workflow runs the Python test suite only, without the R-based comparison tests, due to platform-specific constraints in the testing environment.

Citation

If you use this software, please cite:

Becquart, C. and Abdelsameia, A. (2026). ICSpyLab (Version 1.0.1) https://doi.org/10.5281/zenodo.20707572

@software{becquart2026,
 author = {Becquart, Colombe and Abdelsameia, Abdallah},
 title = {ICSpyLab},
 year = {2026},
 version = {1.0.1},
 doi = {10.5281/zenodo.20707572}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

icspylab-1.0.1-py3-none-any.whl (47.1 kB view details)

Uploaded Python 3

File details

Details for the file icspylab-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: icspylab-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 47.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for icspylab-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aa5956c04abc78e14d1f09d3455efa117b4d54185b79b96ca42187f70609afdf
MD5 14d09f7b2ed00d0951d5e9bfc82819e1
BLAKE2b-256 1e7e83d81c7fff466480aa79008beed6cfea21a647e063f6d1969537d04f69ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page