Toolbox for Machine Learning using Topological Data Analysis.
Project description
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 at business@l2f.ch.
Documentation
API reference (stable release): https://docs-tda.giotto.ai
Theory glossary: https://giotto.ai/theory
Getting started
To get started with giotto-tda, first follow the installations steps below. This blog post, and references therein, offer a friendly introduction to the topic of topological machine learning and to the philosophy behind giotto-tda.
Tutorials and use cases
Simple tutorials can be found in the examples folder. For a wide selection of use cases and application domains, you can visit this page.
Installation
Dependencies
The latest stable version of giotto-tda requires:
Python (>= 3.6)
NumPy (>= 1.17.0)
SciPy (>= 0.17.0)
joblib (>= 0.13)
scikit-learn (>= 0.22.0)
python-igraph (>= 0.7.1.post6)
matplotlib (>= 3.0.3)
plotly (>= 4.4.1)
ipywidgets (>= 7.5.1)
To run the examples, jupyter is required.
User installation
The simplest way to install giotto-tda is using pip
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
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.
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 see the CONTRIBUTING.rst file.
Developer installation
Installing both the PyPI release and source of giotto-tda in the same environment is not recommended since it is known to cause conflicts with the C++ bindings.
The developer installation requires three important C++ dependencies:
A C++14 compatible compiler
CMake >= 3.9
Boost >= 1.56
Please refer to your system’s instructions and to the CMake and Boost websites for definitive guidance on how to install these dependencies. The instructions below are unofficial, please follow them at your own risk.
Linux
Most Linux systems should come with a suitable compiler pre-installed. For the other two dependencies, you may consider using your distribution’s package manager, e.g. by running
sudo apt-get install cmake libboost-dev
if apt-get is available in your system.
macOS
On macOS, you may consider using brew (https://brew.sh/) to install the dependencies as follows:
brew install gcc cmake boost
Windows
On Windows, you will likely need to have Visual Studio installed. At present, it appears to be important to have a recent version of the VS C++ compiler. One way to check whether this is the case is as follows: 1) open the VS Installer GUI; 2) under the “Installed” tab, click on “Modify” in the relevant VS version; 3) in the newly opened window, select “Individual components” and ensure that v14.24 or above of the MSVC “C++ x64/x86 build tools” is selected. The CMake and Boost dependencies are best installed using the latest binary executables from the websites of the respective projects.
Source code
You can obtain the latest state of the source code with the command:
git clone https://github.com/giotto-ai/giotto-tda.git
To install:
cd giotto-tda
python -m pip install -e ".[dev]"
This way, you can pull the library’s latest changes and make them immediately available on your machine. Note: we recommend upgrading pip and setuptools to recent versions before installing in this way.
Testing
After installation, you can launch the test suite from outside the source directory:
pytest gtda
Changelog
See the RELEASE.rst file for a history of notable changes to giotto-tda.
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
Community
giotto-ai Slack workspace: https://slack.giotto.ai/
Contacts
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 Distributions
File details
Details for the file giotto_tda_nightly-20200302.12-cp38-cp38-win_amd64.whl
.
File metadata
- Download URL: giotto_tda_nightly-20200302.12-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cd3f95abd81e030c065daac465d3b52ef2a2893c83f0e9b579dd0db88d14e9d6 |
|
MD5 | bcc7ed103d230cc93db19716d186cf66 |
|
BLAKE2b-256 | 818bf78a8f86b6beb1ba91d693f5ec6bde9ed1d2ce103260dc2eff42d9de15c5 |
File details
Details for the file giotto_tda_nightly-20200302.12-cp38-cp38-manylinux2010_x86_64.whl
.
File metadata
- Download URL: giotto_tda_nightly-20200302.12-cp38-cp38-manylinux2010_x86_64.whl
- Upload date:
- Size: 1.5 MB
- Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11b5deac00d2d919116922e15c38b06446dc4e6dde9bb1c66845b50527325ff2 |
|
MD5 | 4bfb2bf2e9600f33a1bdff65f638994b |
|
BLAKE2b-256 | 41e281515d116aa383a916b7c35235c8f8934847b37c8e214a95afa8b4e6ae63 |
File details
Details for the file giotto_tda_nightly-20200302.12-cp38-cp38-macosx_10_14_x86_64.whl
.
File metadata
- Download URL: giotto_tda_nightly-20200302.12-cp38-cp38-macosx_10_14_x86_64.whl
- Upload date:
- Size: 979.8 kB
- Tags: CPython 3.8, macOS 10.14+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d69a9c6e4a1c7c66ef93c0b21b4b112839aed21d91fe9ae734970b7595198ef3 |
|
MD5 | 93b1267ba904d774cd4393574300db50 |
|
BLAKE2b-256 | e4774319dfa42cde0ffd0b580c8c0f5bdc449102077aefe229d93b39a4e2dcbf |
File details
Details for the file giotto_tda_nightly-20200302.12-cp37-cp37m-win_amd64.whl
.
File metadata
- Download URL: giotto_tda_nightly-20200302.12-cp37-cp37m-win_amd64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.7m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8813ced85a37360ae29477005bf7b42244bdd47b1866a73d1a89f6dd399f7061 |
|
MD5 | 3a49fc87a0eca5ee3f0aca2243c2fb79 |
|
BLAKE2b-256 | 4aa5f548b2c09ac0834d696f73d738b0a6d046f308391cb8d14703b86dbc8bc3 |
File details
Details for the file giotto_tda_nightly-20200302.12-cp37-cp37m-manylinux2010_x86_64.whl
.
File metadata
- Download URL: giotto_tda_nightly-20200302.12-cp37-cp37m-manylinux2010_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 616406de91351156ae6a5ff5990995be66f63cad6a2ce5c4954664fd46b3a97b |
|
MD5 | 95386aacd1fdc7cf4e5c3c23e4da3c16 |
|
BLAKE2b-256 | c415a294af5e07fc3bcdb12e03f9799725615b662bf2dbf7c6093d155668012b |
File details
Details for the file giotto_tda_nightly-20200302.12-cp37-cp37m-macosx_10_14_x86_64.whl
.
File metadata
- Download URL: giotto_tda_nightly-20200302.12-cp37-cp37m-macosx_10_14_x86_64.whl
- Upload date:
- Size: 972.9 kB
- Tags: CPython 3.7m, macOS 10.14+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50a40dd85664787ce886313723183546ddb228584520af0709fbb8221e485161 |
|
MD5 | 10b00fd5d0498886b67edda9a1ee3b63 |
|
BLAKE2b-256 | ed82d252e822ee41c43eb96a3fe7d500d92e5503de8c437f3cdbeda46a9d862d |
File details
Details for the file giotto_tda_nightly-20200302.12-cp36-cp36m-win_amd64.whl
.
File metadata
- Download URL: giotto_tda_nightly-20200302.12-cp36-cp36m-win_amd64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.6m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76d5f753c63a368ac264b7aab674422f1acc32fcb3b6c7a106086b3c1e70603f |
|
MD5 | a5a220bce439789b211636b6411369d9 |
|
BLAKE2b-256 | efd7f261e4032e3fc1e9529e6ca4637a64dbafd7663aa3d0dd855ace40cef41b |
File details
Details for the file giotto_tda_nightly-20200302.12-cp36-cp36m-manylinux2010_x86_64.whl
.
File metadata
- Download URL: giotto_tda_nightly-20200302.12-cp36-cp36m-manylinux2010_x86_64.whl
- Upload date:
- Size: 1.6 MB
- Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 253525f70be1135c4d19034366885ebe0a20512eeee345226ffca64d564383ba |
|
MD5 | b562d98508d5f4ec1dcaf15966b5c82f |
|
BLAKE2b-256 | b7e9049ea0a730f2f996b0481d149fa0162ff657305a0efe39b312836886fa51 |
File details
Details for the file giotto_tda_nightly-20200302.12-cp36-cp36m-macosx_10_14_x86_64.whl
.
File metadata
- Download URL: giotto_tda_nightly-20200302.12-cp36-cp36m-macosx_10_14_x86_64.whl
- Upload date:
- Size: 972.5 kB
- Tags: CPython 3.6m, macOS 10.14+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c693e3c008e79835a5e4d77c4f56865aab6205ce7cd1a04b22d97cb5f86a4934 |
|
MD5 | d9d168b8d469d603558ee34348d8a234 |
|
BLAKE2b-256 | aa062b36a9ddd78ff4c25f29e098cf3e320a54d8adbf4bf702e20652062df415 |