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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68dc700d482c16b2fda11e64e01f340322a6de8a2709f0fdc79dc954204f114c
|
|
| MD5 |
309aed39254d6bbe6f8b3c666eb16ed0
|
|
| BLAKE2b-256 |
e8e645971b78e8d400221c1eb14677661772e520814315005423e12ac6d1b58d
|