Topological Data Analysis with Persistent Homology summer course (2021, FGV). Professor: Raphaël Tinarrage.
[Syllabus] [Webpage] [GitHub] [Class notes]
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.
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.
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.
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 :)