A high-performance topological machine learning toolbox in Python
.. image:: https://raw.githubusercontent.com/giotto-ai/giotto-tda/master/doc/images/tda_logo.svg :width: 850
|Version| |Azure-build| |Azure-cov| |Azure-test| |Twitter-follow| |Slack-join|
.. |Version| image:: https://img.shields.io/pypi/v/giotto-tda .. _Version:
.. |Azure-build| image:: https://dev.azure.com/maintainers/Giotto/_apis/build/status/giotto-ai.giotto-tda?branchName=master .. Azure-build: https://dev.azure.com/maintainers/Giotto/build?definitionId=6&_a=summary&repositoryFilter=6&branchFilter=141&requestedForFilter=ae4334d8-48e3-4663-af95-cb6c654474ea
.. |Azure-cov| image:: https://img.shields.io/azure-devops/coverage/maintainers/Giotto/6/master .. _Azure-cov:
.. |Azure-test| image:: https://img.shields.io/azure-devops/tests/maintainers/Giotto/6/master .. _Azure-test:
.. |Twitter-follow| image:: https://img.shields.io/twitter/follow/giottoai?label=Follow%20%40giottoai&style=social .. Twitter-follow: https://twitter.com/intent/follow?screenname=giotto_ai
.. |Slack-join| image:: https://img.shields.io/badge/Slack-Join-yellow .. _Slack-join: https://slack.giotto.ai/
========== 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 =======
.. _L2F team: business@l2f.ch
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.7)
- 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)
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-section:
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
You can use the following BibTeX entry:
.. code:: bibtex
@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/
Contacts ========
maintainers@giotto.ai