giotto-tda
giotto-tda
is a high-performance topological machine learning toolbox in Python built on top of scikit-learn
and is distributed under the GNU AGPLv3 license. It is part of the Giotto family of open-source projects.
Project genesis
giotto-tda
is the result of a collaborative effort between L2F SA, the Laboratory for Topology and Neuroscience at EPFL, and the Institute of Reconfigurable & Embedded Digital Systems (REDS) of HEIG-VD.
License
giotto-tda
is distributed under the AGPLv3 license. If you need a different distribution license, please contact the L2F team.
Documentation
Please visit https://giotto-ai.github.io/gtda-docs and navigate to the version you are interested in.
Installation
Dependencies
The latest stable version of giotto-tda
requires:
- Python (>= 3.6)
- NumPy (>= 1.19.1)
- SciPy (>= 1.5.0)
- joblib (>= 0.16.0)
- scikit-learn (>= 0.23.1)
- pyflagser (>= 0.4.3)
- python-igraph (>= 0.8.2)
- plotly (>= 4.8.2)
- ipywidgets (>= 7.5.1)
To run the examples, jupyter is required.
User installation
The simplest way to install giotto-tda
is using pip
python -m pip install -U giotto-tda
If necessary, this will also automatically install all the above dependencies. Note: we recommend upgrading pip
to a recent version as the above may fail on very old versions.
Pre-release, experimental builds containing recently added features, and/or bug fixes can be installed by running
python -m pip install -U giotto-tda-nightly
The main difference between giotto-tda-nightly
and the developer installation (see the section on contributing, below) is that the former is shipped with pre-compiled wheels (similarly to the stable release) and hence does not require any C++ dependencies. As the main library module is called gtda
in both the stable and nightly versions, giotto-tda
and giotto-tda-nightly
should not be installed in the same environment.
Developer installation
Please consult the dedicated page for detailed instructions on how to build giotto-tda
from sources across different platforms.
Contributing
We welcome new contributors of all experience levels. The Giotto community goals are to be helpful, welcoming, and effective. To learn more about making a contribution to giotto-tda
, please consult the relevant page.
Testing
After developer installation, you can launch the test suite from outside the source directory
pytest gtda
Important links
- Official source code repo: https://github.com/giotto-ai/giotto-tda
- Download releases: https://pypi.org/project/giotto-tda/
- Issue tracker: https://github.com/giotto-ai/giotto-tda/issues
Citing giotto-tda
If you use giotto-tda
in a scientific publication, we would appreciate citations to the following paper:
giotto-tda: A Topological Data Analysis Toolkit for Machine Learning and Data Exploration, Tauzin et al, J. Mach. Learn. Res. 22.39 (2021): 1-6.
You can use the following BibTeX entry:
@article{giotto-tda,
author = {Guillaume Tauzin and Umberto Lupo and Lewis Tunstall and Julian Burella P\'{e}rez and Matteo Caorsi and Anibal M. Medina-Mardones and Alberto Dassatti and Kathryn Hess},
title = {giotto-tda: A Topological Data Analysis Toolkit for Machine Learning and Data Exploration},
journal = {Journal of Machine Learning Research},
year = {2021},
volume = {22},
number = {39},
pages = {1-6},
url = {http://jmlr.org/papers/v22/20-325.html}
}
Community
giotto-ai Slack workspace: https://slack.giotto.ai/