All Projects → GUDHI → Tda Tutorial

GUDHI / Tda Tutorial

Licence: mit
A set of jupyter notebooks for the practice of TDA with the python Gudhi library together with popular machine learning and data sciences libraries.

Projects that are alternatives of or similar to Tda Tutorial

Voice activity detector
A statistical model-based Voice Activity Detection
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
Network Intrusion Detection
Machine Learning with the NSL-KDD dataset for Network Intrusion Detection
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
Basketballcrawler
This is a python module to scrape basketball-reference.com and convert various stats into usable data structures for analysis
Stars: ✭ 118 (-1.67%)
Mutual labels:  jupyter-notebook
2018 19 Classes
https://cc-mnnit.github.io/2018-19-Classes/ - 🎒 💻 Material for Computer Club Classes
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
Label smoothing
Corrupted labels and label smoothing
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
Emobank
This repository contains EmoBank, a large-scale text corpus manually annotated with emotion according to the psychological Valence-Arousal-Dominance scheme.
Stars: ✭ 118 (-1.67%)
Mutual labels:  jupyter-notebook
Adversarial examples
对抗样本
Stars: ✭ 118 (-1.67%)
Mutual labels:  jupyter-notebook
Multi Label Text Classification Using Bert
Multi Label text classification using bert
Stars: ✭ 120 (+0%)
Mutual labels:  jupyter-notebook
Code Challenges
Built for //BUILD 2017; this repo contains 15 minutes code challenges across data platform and analytics. Inclusive of; SQL Server on Linux, Azure SQL Database, Azure DocumentDB, Azure Search, HDInsight, MySQL as a Service, PostgreSQL as a Service, Bot Framework, Python Tools for Visual Studio, R Tools for Visual Studio. Get challenged, learn new stuff, fork the repo, contribute to the repo, and get a sneak peak the exciting world of Microsoft products and services.
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
Essential Sqlalchemy 2e
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
Mnet deepcdr
Code for TMI 2018 "Joint Optic Disc and Cup Segmentation Based on Multi-label Deep Network and Polar Transformation"
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
Topic Model Tutorial
Tutorial on topic models in Python with scikit-learn
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
Ml Dl Scripts
The repository provides usefull python scripts for ML and data analysis
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
Trimap generator
Generating automatic trimap through pixel dilation and strongly-connected-component algorithms
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
Robbert
A Dutch RoBERTa-based language model
Stars: ✭ 120 (+0%)
Mutual labels:  jupyter-notebook
Linear Attention Recurrent Neural Network
A recurrent attention module consisting of an LSTM cell which can query its own past cell states by the means of windowed multi-head attention. The formulas are derived from the BN-LSTM and the Transformer Network. The LARNN cell with attention can be easily used inside a loop on the cell state, just like any other RNN. (LARNN)
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
How To Use Tensorflow For Time Series Live
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
Mixmatch Pytorch
Pytorch Implementation of the paper MixMatch: A Holistic Approach to Semi-Supervised Learning (https://arxiv.org/pdf/1905.02249.pdf)
Stars: ✭ 120 (+0%)
Mutual labels:  jupyter-notebook
Cursopyladiessp
Curso Introdutório de Análise de Dados Públicos
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook
Kernel gateway demos
Demos associated with the kernel gateway incubator project
Stars: ✭ 119 (-0.83%)
Mutual labels:  jupyter-notebook

Tutorials for Topological Data Analysis with the Gudhi Library

Topological Data Analysis (TDA) is a recent and fast growing field providing a set of new topological and geometric tools to infer relevant features for possibly complex data. Here we propose a set of notebooks for the practice of TDA with the Python Gudhi library together with popular machine learning and data sciences libraries. See for instance this paper for an introduction to TDA for data science. The complete list of notebooks can also be found at the end of this page.

Install Python Gudhi Library

See the installation page or if you have conda you can make a conda install.

TDA Analysis Pipeline

01 - Simplex trees and simpicial complexes

TDA typically aims at extracting topological signatures from a point cloud in \mathbb{R}^d or in a general metric space. By studying the topology of a point cloud, we actually mean studying the topology of the unions of balls centered at the point cloud, also called offsets. However, non-discrete sets such as offsets, and also continuous mathematical shapes like curves, surfaces and more generally manifolds, cannot easily be encoded as finite discrete structures. Simplicial complexes are therefore used in computational geometry to approximate such shapes.

A simplicial complex is a set of simplices, they can be seen as higher dimensional generalization of graphs. These are mathematical objects that are both topological and combinatorial, a property making them particularly useful for TDA. The challenge here is to define such structures that are proven to reflect relevant information about the structure of data and that can be effectively constructed and manipulated in practice. Below is an exemple of simplicial complex:

A filtration is an increasing sequence of sub-complexes of a simplicial complex \mathcal{K}. It can be seen as ordering the simplices included in the complex \mathcal{K}. Indeed, simpicial complexes often come with a specific order, as for Vietoris-Rips complexes, Cech complexes and alpha complexes.

Notebook: Simplex trees. In Gudhi, filtered simplicial complexes are encoded through a data structure called simplex tree. Vertices are represented as integers, edges as pairs of integers, etc.

Notebook: Vietoris-Rips complexes and alpha complexes from data points. In practice, the first step of the TDA Analysis Pipeline is to define a filtration of simplicial complexes for some data. This notebook explains how to build Vietoris-Rips complexes and alpha complexes (represented as simplex trees) from data points in \mathbb{R}^d, using the simplex tree data structure.

Notebook: Rips and alpha complexes from pairwise distance. It is also possible to define Rips complexes in general metric spaces from a matrix of pairwise distances. The definition of the metric on the data is usually given as an input or guided by the application. It is however important to notice that the choice of the metric may be critical to reveal interesting topological and geometric features of the data. We also give in this last notebook a way to define alpha complexes from matrix of pairwise distances by first applying a multidimensional scaling (MDS) transformation on the matrix.

TDA signatures can extracted from point clouds but in many cases in data sciences the question is to study the topology of the sublevel sets of a function.

Above is an example for a function defined on a subset of \mathbb{R} but in general the function f is defined on a subset of \mathbb{R}^d.

Notebook: cubical complexes. One first approach for studying the topology of the sublevel sets of a function is to define a regular grid on \mathbb{R}^d and then to define a filtered complex based on this grid and the function f.

02 - Persistent homology and persistence diagrams

Homology is a well-known concept in algebraic topology. It provides a powerful tool to formalize and handle the notion of topological features of a topological space or of a simplicial complex in an algebraic way. For any dimension k, the k-dimensional holes are represented by a vector space H_k, whose dimension is intuitively the number of such independent features. For example, the 0-dimensional homology group H_0 represents the connected components of the complex, the 1-dimensional homology group H_1 represents the 1-dimensional loops, the 2-dimensional homology group H_2 represents the 2-dimensional cavities and so on.

Persistent homology is a powerful tool to compute, study and encode efficiently multiscale topological features of nested families of simplicial complexes and topological spaces. It encodes the evolution of the homology groups of the nested complexes across the scales. The diagram below shows several level sets of the filtration:

Notebook: persistence diagrams In this notebook we show how to compute barcodes and persistence diagrams from a filtration defined on the Protein binding dataset. This tutorial also introduces the bottleneck distance between persistence diagrams.

03 - Representations of persistence and linearization

In this notebook, we learn how to use alternative representations of persistence with the representations module and finally we see a first example of how to efficiently combine machine learning and topological data analysis.

This notebook illustrates the notion of “Expected Persistence Diagram”, which is a way to encode the topology of a random process as a deterministic measure.

04 - Statistical tools for persistence

For many applications of persistent homology, we observe topological features close to the diagonal. Since they correspond to topological structures that die very soon after they appear in the filtration, these points are generally considered as “topological noise”. Confidence regions for persistence diagram provide a rigorous framework to this idea. This notebook introduces the subsampling approach of Fasy et al. 2014 AoS.

05 - A Bayesian Framework for Persistent Homology

C. Oballe and V. Maroulas provide a tutorial for a Python module that implements the model for Bayesian inference with persistence diagrams introduced in their paper.

06 - Machine learning and deep learning with TDA

Two libraries related to Gudhi:

07 - Alternative filtrations and robust TDA

This notebook introduces the distance to measure (DTM) filtration, as defined in this paper. This filtration can be used for robust TDA. The DTM can also be used for robust approximations of compact sets, see this notebook.

08 - Topological Data Analysis for Time series

09 - Cover complexes and the Mapper Algorithm

10 - TDA and dimension reduction

11 - Inverse problem and optimization with TDA

In this notebook, we will see how Gudhi and Tensorflow can be combined to perform optimization of persistence diagrams to solve an inverse problem. This other, less complete notebook shows that this kind of optimization works just as well with PyTorch.

Complete list of notebooks for TDA

Simplex trees

Vietoris-Rips complexes and alpha complexes from data points

Visualizing simplicial complexes

Rips and alpha complexes from pairwise distance

Cubical complexes

Persistence diagrams and bottleneck distance

Representations of persistence

Expected Persistence Diagram

Confidence regions for persistence diagrams - data points

Confidence regions with Bottleneck Bootstrap

ATOL tutorial

Perslay tutorial

DTM-filtrations

kPDTM-kPLM

Inverse problem and optimization with TDA

PyTorch differentiation of diagrams

Contact : [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].