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

pip install numpy pandas scipy scikit-learn seaborn matplotlib 
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()

🤝 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.

Citation

If you use this software, please cite:

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

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

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.0-py3-none-any.whl (47.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: icspylab-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 47.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68dc700d482c16b2fda11e64e01f340322a6de8a2709f0fdc79dc954204f114c
MD5 309aed39254d6bbe6f8b3c666eb16ed0
BLAKE2b-256 e8e645971b78e8d400221c1eb14677661772e520814315005423e12ac6d1b58d

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