Skip to main content

Multiparameter Topological Persistence for Machine Learning

Project description

multipers : Multiparameter Persistence for Machine Learning

Build, test PyPI Downloads Documentation
Scikit-style PyTorch-autodiff multiparameter persistent homology python library. This library aims to provide easy to use and performant strategies for applied multiparameter topology.
Meant to be integrated in the Gudhi library.

Multiparameter Persistence

This library allows computing several representations from "geometrical datasets", e.g., point clouds, images, graphs, that have multiple scales. A well known example is the following one.
Pick a point cloud that has diffuse noise, or on which the sampling measure has some interesting properties, e.g., in the following example the measure has three modes.
Now define a two parameter grid (filtration) of topological spaces (on the left) from a point cloud $P$ on which we will compute the persistence of some topological structures (homological cycles). This filtration $X$, indexed over a radius parameter $r$ and a codensity parameter $s$ is defined as follows

$$ X_{r,s} = \bigcup_{x \in P, , \mathrm{density}(x) \ge s} B(x,r) = \lbrace x\in \mathbb R^2 \mid \exists p \in P, , \mathrm{density}(p) \ge s \text{ and } d(x,p) \le r \rbrace$$

The green shape on the left represents the lifetime of the biggest annulus. On the right, each cycle appearing on the left gets a colored shape (the color is only a label) and the shape of this colored shape represents the lifetime of this cycle.
In our case, the big green shape on the left corresponds to the largest green shape appearing on the right, recovering the structure of the annulus here. Alt text

The magic part is that we never had to choose any parameter to remove the noise in this construction, but the annulus still naturally appears!
A more striking example is the following one. Using the same constructions, we can identify topological structure, and their size, in a parameter free approach, even though the majority of the sampling measure's mass is noise.
In this example, the lifetime shape associated to each cycle can be identified from

  • Their radius : the smaller cycle will naturally live more this shape will appear on the "left" (smaller radius)
  • Their concentration : Cycles having more concentration will appear lower than others (smaller co-density)

Notice that this construction is also very stable w.r.t. the noise. The more noise is added the smaller the "rainbow strip" is, and the more the "large shape" are visible. alt text We also provide several other descriptors, as well as associated Machine Learning technics and pipelines. In the following example from the same dataset, the Hilbert decomposition signed measure, the Euler decomposition signed measure and the rank decomposition signed measure. alt text

A non-exhaustive list of features can be found in the Features section, and in the documentation.

Quick start

This library is available on PyPI for Linux and macOS, via

pip install multipers

We recommend Windows user to use WSL.
A documentation and building instructions are available here.

Features, and linked projects

This library features a bunch of different functions and helpers. See below for a non-exhaustive list.
Filled box refers to implemented or interfaced code.

If I missed something, or you want to add something, feel free to open an issue.

Authors

David Loiseaux,
Hannah Schreiber (Persistence backend code),
Luis Scoccola (Möbius inversion in python, degree-rips using persistable and RIVET),
Mathieu Carrière (Sliced Wasserstein)

Contributions

Feel free to contribute, report a bug on a pipeline, or ask for documentation by opening an issue.
In particular, if you have a nice example or application that is not taken care in the documentation (see the ./docs/notebooks/ folder), please contact me to add it there.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

multipers-2.2.1.tar.gz (6.1 MB view details)

Uploaded Source

Built Distributions

multipers-2.2.1-cp312-cp312-manylinux_2_34_x86_64.whl (13.7 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.34+ x86-64

multipers-2.2.1-cp312-cp312-macosx_13_0_x86_64.whl (15.7 MB view details)

Uploaded CPython 3.12 macOS 13.0+ x86-64

multipers-2.2.1-cp312-cp312-macosx_13_0_arm64.whl (14.6 MB view details)

Uploaded CPython 3.12 macOS 13.0+ ARM64

multipers-2.2.1-cp311-cp311-manylinux_2_34_x86_64.whl (14.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.34+ x86-64

multipers-2.2.1-cp311-cp311-macosx_13_0_x86_64.whl (15.8 MB view details)

Uploaded CPython 3.11 macOS 13.0+ x86-64

multipers-2.2.1-cp311-cp311-macosx_13_0_arm64.whl (14.6 MB view details)

Uploaded CPython 3.11 macOS 13.0+ ARM64

multipers-2.2.1-cp310-cp310-manylinux_2_34_x86_64.whl (14.1 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.34+ x86-64

multipers-2.2.1-cp310-cp310-macosx_13_0_x86_64.whl (16.0 MB view details)

Uploaded CPython 3.10 macOS 13.0+ x86-64

multipers-2.2.1-cp310-cp310-macosx_13_0_arm64.whl (14.8 MB view details)

Uploaded CPython 3.10 macOS 13.0+ ARM64

File details

Details for the file multipers-2.2.1.tar.gz.

File metadata

  • Download URL: multipers-2.2.1.tar.gz
  • Upload date:
  • Size: 6.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for multipers-2.2.1.tar.gz
Algorithm Hash digest
SHA256 315eef3449f23069314fd58546951ca4a8294e12b5a11644c61934f12e29388f
MD5 ace8564d38dadb035ed20cfe90313432
BLAKE2b-256 61f1845c7385604b9097454f6956c5ba2ce21da40d1265dc0e32c2e9eca95300

See more details on using hashes here.

File details

Details for the file multipers-2.2.1-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for multipers-2.2.1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 0b4e53863ea1064816494d82e18c4c3d477eabe63095c0cd45093273ffb8d6ed
MD5 fd73b1f5fb5c4cb0efd00d24e4633f83
BLAKE2b-256 e3f7aedeb8af031692e6abf08238e625bd9a34ef119c5a22260d47d11d8aa2da

See more details on using hashes here.

File details

Details for the file multipers-2.2.1-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for multipers-2.2.1-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b2ff434162ea803d547d494b1fd3e4e69528cd55d5cde723627a5ef507c86711
MD5 748adbe04c492df390908acf1b559232
BLAKE2b-256 a1ddd9758286c4deec7256cde45f8592a5a952fbadd56091705cd0b737dda328

See more details on using hashes here.

File details

Details for the file multipers-2.2.1-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for multipers-2.2.1-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 dc176b07a551649892c1d42420d0354dc55fa37118ef03a98cd511cd1a0d3151
MD5 b0d1456c7647ddcad9d3d88af74a8875
BLAKE2b-256 5ad80d292355a171e48eba69e20587aa2b0ceb3c5a6dd2722f6b014c24e0fc31

See more details on using hashes here.

File details

Details for the file multipers-2.2.1-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for multipers-2.2.1-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1d651f2d5f2a9ca36338b55b18483130b5ce3b1fa48463c86d03e9fcdb4bafa0
MD5 598873844ed757c63cf98a19586f13d1
BLAKE2b-256 e0451a77b16002c37383dfdc4c210fb5c1c9a6e0ca7844a9f6794af0a03e583c

See more details on using hashes here.

File details

Details for the file multipers-2.2.1-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for multipers-2.2.1-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b58dd3acddcff26e6f9de254b6b3b493323121f849458eb5e9f06808946c6417
MD5 4c801fd0dbb8caa2ee377c3867dd8354
BLAKE2b-256 874df1ff1265dd53d1f490bd98bcc9a3f36e58410fe6098888da307f73fdfb7a

See more details on using hashes here.

File details

Details for the file multipers-2.2.1-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for multipers-2.2.1-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 3a8ff389e3967317f152699f67894d75ff5f7735e74b0ac2616e781eadfd94fd
MD5 15bdaacbbe5e20415f4bcf932a901806
BLAKE2b-256 61610083a0f879ae2adb6f1956d392263f4cf1aa6e2d778d7de7287494b6b157

See more details on using hashes here.

File details

Details for the file multipers-2.2.1-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for multipers-2.2.1-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3cdc99d0a1dd9658a65dd2416c216dc74b282003414507dab7930be293127387
MD5 cedb3bddb1b20af8e6a43f82b0f1a66a
BLAKE2b-256 96a8b4d8a7717944f9ee82f25272bf7ba7e3fd518b13c8b8771bc534bb6ce806

See more details on using hashes here.

File details

Details for the file multipers-2.2.1-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for multipers-2.2.1-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e4d7961a9f08f00fb975e1f8ed2022a811969d1f3b3d720773da9c411c3c78b3
MD5 ae7f45c87383e089452b41474e2add13
BLAKE2b-256 6ca8a1efbdd686f51f90ed1640f454a3550c98959f6a752eb67ebd1f600d0d44

See more details on using hashes here.

File details

Details for the file multipers-2.2.1-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for multipers-2.2.1-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 0a66ac5a01c9eacf7b227e7fa19b390c3ff9316bca50024ed22cb506fb221cc0
MD5 2f72946ac2130aeae428bf56e8119faa
BLAKE2b-256 b79d0e81bac556f1fa1f539b465cad31fc736562538f3a1b3d8c0662c10afe21

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page