Visualization for Machine Learning

Autumn 2025

Topological Data Analysis

O que é topologia?

  • A topologia estuda a forma dos objetos matemáticos

  • Diferente da geometria, ela não se importa com tamanhos, ângulos, nem coordenadas

  • Ela se importa com a conectividade (ou a falta dela) entre as diferentes “partes” do objeto

  • Dois objetos são topologicamente equivalentes se pudermos transformar um no outro com transformações contínuas (sem rasgar o objeto)

O que é topologia?

Por que topologia?

  • Como a topologia analisa a forma descartando informações possivelmente desnecessárias, ela é frequentemente usada para analisar objetos de alta dimensionalidade

  • Topological Data Analysis (TDA) usa técnicas da topologia para analisar datasets

  • Para fazer isso, é necessário construir representações topológicas dos pontos do dataset

Por que topologia? - Um exemplo em química

Por que topologia? - Um exemplo em química

Por que topologia? - Um exemplo em química

Por que topologia? - Um exemplo em biologia

Números de Betti

O \(d\)-ésimo número de Betti conta o número de buracos de dimensão \(d\). Ele pode ser usado para distinguir entre espaços.

  • \(\beta_0(X)\) Componentes conexas em X

  • \(\beta_1(X)\) Túneis ou buracos em X

  • \(\beta_2(X)\) Vazios em X

Primeiro Exemplo - Mapa

O que é um pico?


Primeiro Exemplo - Mapa

O que é um pico?

Primeira ideia: usar o máximo local

Primeiro Exemplo - Mapa

O que é um pico?

Segunda ideia: inundação

Primeiro Exemplo - Mapa

O que é um pico?

Segunda ideia: inundação

Primeiro Exemplo - Mapa

O que é um pico?

Segunda ideia: inundação

Primeiro Exemplo - Mapa

O que é um pico?

Segunda ideia: inundação

Primeiro Exemplo - Mapa

O que é um pico?

Segunda ideia: inundação

Primeiro Exemplo - Mapa

O que é um pico?

Segunda ideia: inundação

Primeiro Exemplo - Mapa

O que é um pico?

Segunda ideia: inundação

Primeiro Exemplo - Mapa

A ilha \(I\) aparece no nível do mar \(b\) (seu tempo de nascimento)…


Primeiro Exemplo - Mapa

A ilha \(I\) aparece no nível do mar \(b\) (seu tempo de nascimento)…

e desaparece no nível do mar \(d\) (seu tempo de morte) no máximo local \(x\).

O ponto \(x\) é um pico se a persistência\(:= d-b\) da ilha \(I\) for maior que \(91\)m (=\(300\)ft).

Primeiro Exemplo - Mapa

O diagrama de persistência (PD) da função de elevação é a coleção dos pontos \((b,d)\), onde \((b,d)\) corresponde ao nascimento/morte de uma ilha.

Primeiro Exemplo - Mapa

O diagrama de persistência (PD) da função de elevação é a coleção dos pontos \((b,d)\), onde \((b,d)\) corresponde ao nascimento/morte de uma ilha.

Segundo Exemplo

Segundo Exemplo

Segundo Exemplo

Segundo Exemplo

Segundo Exemplo

Segundo Exemplo

Segundo Exemplo

Segundo Exemplo

Segundo Exemplo

Segundo Exemplo

Segundo Exemplo

Segundo Exemplo

Segundo Exemplo

Diagrama de persistência

Distância entre diagramas de persistência


Se tivermos mais de um diagrama de persistência, como medimos a distância entre eles?

Distância entre diagramas de persistência


Colocamos os dois no mesmo diagrama

Distância entre diagramas de persistência


Colocamos os dois no mesmo diagrama

Obtemos o pareamento ótimo entre os pontos (incluindo a diagonal)

Distância entre diagramas de persistência


Colocamos os dois no mesmo diagrama

Obtemos o pareamento ótimo entre os pontos (incluindo a diagonal)

A distância bottleneck entre eles será a maior distância de par

Complexos simpliciais

Definição

Chamamos de complexo simplicial abstrato a uma família não vazia de conjuntos \(K\) com uma coleção de subconjuntos não vazios \(S\) se:

  1. \(\{v\} \in S\) para todo \(v \in K\)
  2. Se \(\sigma \in S\) e \(\tau \subseteq \sigma\), então \(\tau \in K\).

Terminologia

Os elementos de um complexo simplicial \(K\) são chamados de simplices. Um \(k\)-simplex consiste de \(k+1\) vértices.

Complexos simpliciais

Exemplo

Complexos simpliciais podem ser decompostos em seus esqueletos, que contêm apenas simplices de uma determinada dimensão.

Complexos simpliciais

Exemplo

Complexos simpliciais podem ser decompostos em seus esqueletos, que contêm apenas simplices de uma determinada dimensão.

Complexos simpliciais

Exemplo

Complexos simpliciais podem ser decompostos em seus esqueletos, que contêm apenas simplices de uma determinada dimensão.

Complexos simpliciais

Exemplo

Complexos simpliciais podem ser decompostos em seus esqueletos, que contêm apenas simplices de uma determinada dimensão.

Complexos simpliciais

Não-exemplo

Isto não é um complexo simplicial porque alguns simplices de dimensão maior não se intersectam em um de dimensão menor!

Complexos simpliciais

Exemplo

Note que \(K\) não contém o 2-simplex \(\{a,b,c\}\)

De nuvens de pontos a complexos simpliciais

De nuvens de pontos a complexos simpliciais


De nuvens de pontos a complexos simpliciais

Estratégia 1: Triangulação

Construindo o complexo simplicial dos dados

Construção de Vietoris-Rips

Definição

Dado um conjunto de pontos \(\mathcal{X} = \{x_1,\dots,x_n\}\) e uma métrica \(dist\) (como a distância euclidiana), escolha um limiar \(\epsilon\) e construa o complexo de Vietoris-Rips \(\mathcal{V}_\epsilon\) definido como:

\[\mathcal{V}_\epsilon := \{\sigma \subseteq \mathcal{X} | \forall u,v \in \sigma : dist(u,v) \leq \epsilon\}\]

Equivalentemente, \(\mathcal{V}_\epsilon\) contém todos os simplices cujo diâmetro é menor ou igual a \(\epsilon\).

Construção de Vietoris-Rips

Exemplo

Desenhe bolas euclidianas (círculos) de diâmetro \(\epsilon\) e crie um \(k\)-simplex \(\sigma\) para cada subconjunto de \(k+1\) pontos que se intersectam par a par.

Alguns detalhes sobre esta construção

  • Esta construção remonta a um artigo de 1927 de Leopold Vietoris\(^1\)

  • Um paper de 2010 de Afra Zomorodian\(^2\) descreve vários algoritmos de construção

  • A ideia básica é construir simplices de dimensão maior indutivamente a partir dos de dimensão menor

  • No pior caso, o complexo de Vietoris-Rips conterá todos os \(2^n\) subconjuntos de sua nuvem de pontos original \(\mathcal{X}\)!

Os números de Betti de um complexo de Vietoris-Rips

Exemplo

Problemas com esta abordagem


  • Como escolher \(\epsilon\)?

  • Pode não haver um valor ‘correto’ para \(\epsilon\).

  • Computacionalmente ineficiente

Escolhendo \(\epsilon\) - Persistência Topológica

Intuição: Percorrer todas as escalas e acompanhar as características topológicas

Escolhendo \(\epsilon\) - Persistência Topológica

Intuição: Percorrer todas as escalas e acompanhar as características topológicas

Escolhendo \(\epsilon\) - Persistência Topológica

Intuição: Percorrer todas as escalas e acompanhar as características topológicas

Escolhendo \(\epsilon\) - Persistência Topológica

Intuição: Percorrer todas as escalas e acompanhar as características topológicas

Escolhendo \(\epsilon\) - Persistência Topológica

Intuição: Percorrer todas as escalas e acompanhar as características topológicas

Estratégia 2: Esqueleto de dados

O algoritmo Mapper

Mundo Matemático


Começamos no “Mundo Matemático”, onde

  • Desenhamos os dados como uma variedade suave
  • As funções que aparecem são suaves ou contínuas

Não vamos precisar de nenhuma dessas suposições uma vez que estivermos no “Mundo dos Dados”.

Mais importante ainda, os dados no mundo real nunca são assim.

Mundo Matemático

Mundo Matemático

Mundo Matemático

Mundo Matemático

Mundo Matemático

Mundo Matemático

Mundo Matemático

Mundo Matemático

Mundo Matemático

Mundo Matemático

Mundo Matemático

Mundo Matemático

Mundo Matemático

Mundo Matemático

Por que isso é útil?

Obtemos uma compreensão “fácil” das localizações das quantidades de interesse.

Por que isso é útil?

Obtemos uma compreensão “fácil” das localizações das quantidades de interesse.

Por que isso é útil?

Obtemos uma compreensão “fácil” das localizações das quantidades de interesse.

Por que isso é útil?

Obtemos uma compreensão “fácil” das localizações das quantidades de interesse.

Por que isso é útil?

Obtemos uma compreensão “fácil” das localizações das quantidades de interesse.

Por que isso é útil?

Obtemos uma compreensão “fácil” das localizações das quantidades de interesse.

Por que isso é útil?

Obtemos uma compreensão “fácil” das localizações das quantidades de interesse.

Por que isso é útil?

Obtemos uma compreensão “fácil” das localizações das quantidades de interesse.

  • As lentes nos informam onde procurar fenômenos no espaço.
  • Para localizações fáceis, muitas lentes diferentes serão informativas.
  • Para localizações difíceis (= geometricamente distribuídas) precisamos ser mais cuidadosos. Mas mesmo assim, frequentemente obtemos conhecimento incremental de uma lente mal escolhida.

Mundo dos Dados - Mapper

Precisamos ajustar a visão do “Mundo Matemático” para trazer o algoritmo ao “Mundo dos Dados”

  • Substituímos pontos por conjuntos abertos no alcance da lente
  • Substituímos “componente conexa da imagem inversa” por “clusters na imagem inversa”
  • Conectamos clusters (nós) com uma aresta se compartilharem pontos em comum.

Mundo dos Dados - Mapper

Mundo dos Dados - Mapper

Mundo dos Dados - Mapper

Mundo dos Dados - Mapper

Mundo dos Dados - Mapper

Mundo dos Dados - Mapper

Mundo dos Dados - Mapper

Mundo dos Dados - Mapper

Mundo dos Dados - Mapper

Mundo dos Dados - Mapper

Mundo dos Dados - Mapper

Mundo dos Dados - Mapper

Mundo dos Dados - Mapper

Para se aprofundar

Referências

Referências

Alguns livros de interesse:

  • Edelsbrunner, Herbert, and John L. Harer. Computational topology: an introduction. American Mathematical Society, 2022.

  • Dey, Tamal Krishna, and Yusu Wang. Computational topology for data analysis. Cambridge University Press, 2022.

  • Carlsson, Gunnar, and Mikael Vejdemo-Johansson. Topological data analysis with applications. Cambridge University Press, 2021.

Paper introdutório:

  • Chazal, Frédéric, and Bertrand Michel. “An introduction to topological data analysis: fundamental and practical aspects for data scientists.” Frontiers in artificial intelligence 4 (2021): 108.

Referências

TDA em Python:

  • Para estruturas de dados e algoritmos gerais de TDA: GUDHI (tanto em C++ quanto em Python) ou scikit-tda
  • Para uma implementação mais rápida do Vietoris-Rips: Ripser.py
  • Para uma implementação mais rápida do Mapper: KeplerMapper

Para uma biblioteca e coleção de software de código aberto para topological data analysis e visualization: Topology ToolKit

Para mais exemplos de aplicações de TDA: