Skip to content

Latest commit

 

History

History
65 lines (47 loc) · 3.32 KB

README.md

File metadata and controls

65 lines (47 loc) · 3.32 KB

topological-data-analysis

Topological Data Analysis with Persistent Homology summer course (2021, FGV). Professor: Raphaël Tinarrage.

[Syllabus] [Webpage] [GitHub] [Class notes]

Summary

In this repository, you will find links to Topological Data Analysis (TDA) material above, solution to many proposed exercises, and various Jupyter notebooks tutorials with Python implementation.

TDA is a subject which aims to use various tecniques from Mathematical Topology in order to study data sets. Among the many, many things studied, there are:

  • Usual Mathematical Topology, such as topological spaces, homeomorphisms and homotopies;
  • Simplicial complexes, which are the tools used to "simplify" the representation of a topological object;
  • Homologycal algebra, the set of tools used to say that our dataset is "equal" to a circle, for example;
  • Algorithms, such as Incremental Algorithm and Persistent Homology Algorithm;
  • More definitions and various theorems, the Stability Theorem the most important of them.

Examples

Cloud of points

If we have a cloud of points and we want to know the topology of this cloud, we create what is called a t-thickening: over each point, we put a circle with radius t.

Cloud of points t-thickening

We will end up with a new object, and we can apply various TDA techniques in order to prove that this object is homotopy equivalent to a circunference.

What is the topology of this GIF?

A GIF is composed by various images. If each image is a point in a high dimensional space, when we apply a dimensionality reduction it looks like this:

GIF Path in high dimensional space

It makes sense to have a loop, because the GIF repeats itself, but also to have an intersection, because the left and right sides of the object are very similar. When we apply TDA techniques, we discover this GIF has the topology of an eight, that is, one connected object with two holes.

Setup

This setup involves cloning the repository and creating the Conda environment.

  • Clone this repository:
git clone https://github.com/lucasresck/topological-data-analysis/
  • The main library is GUDHI. Create a Conda environment with the required libraries:
cd topological-data-analysis
conda env create -f environment.yml
  • Activate the environment:
conda activate topological-data-analysis

You are good to go :)