Visualization for Machine Learning

Autumn 2025

Agenda


  1. Clustering
  2. Dimensionality Reduction

Clustering

Etienne Bernard: “… the goal of clustering is to separate a set of examples into groups called clusters”

IRIS

# Code source: Gaël Varoquaux
# Modified for documentation by Jaques Grobler
# License: BSD 3 clause
#
import matplotlib.pyplot as plt

from sklearn import datasets
iris = datasets.load_iris()

_, ax = plt.subplots()
scatter = ax.scatter(iris.data[:, 2], iris.data[:, 1])
ax.set(xlabel=iris.feature_names[2], ylabel=iris.feature_names[1])
_ = ax.legend(
    scatter.legend_elements()[0], iris.target_names, loc="lower right", title="Classes"
)

IRIS

IRIS – outro olhar (Bernard)

IRIS – clustering

IRIS – k-means

Wolfram Mathematica FindClusters

Wolfram Mathematica FindClusters

Leitura recomendada

Dimensionality Reduction

  • Os dados de entrada podem ter milhares ou milhões de dimensões!

  • Dimensionality Reduction representa os dados com menos dimensões

    • aprendizado mais fácil – menos parâmetros
    • visualization – mostra dados de alta dimensionalidade em 2D ou 3D
    • descobre a “dimensionalidade intrínseca” dos dados

Dimensionality Reduction (Yi Zhang)

  • Suposição: os dados estão em um espaço de menor dimensão

Dimensionality Reduction (Bishop)

  • Suponha um dataset de “3s” perturbados de várias formas
  • Quais operações realizamos? Qual é a dimensionalidade intrínseca?

  • Aqui a variedade subjacente é não linear

Digits

from sklearn.datasets import load_digits

digits = load_digits(n_class=6)
X, y = digits.data, digits.target

Digits - 0

array([[ 0.,  0.,  5., 13.,  9.,  1.,  0.,  0.],
       [ 0.,  0., 13., 15., 10., 15.,  5.,  0.],
       [ 0.,  3., 15.,  2.,  0., 11.,  8.,  0.],
       [ 0.,  4., 12.,  0.,  0.,  8.,  8.,  0.],
       [ 0.,  5.,  8.,  0.,  0.,  9.,  8.,  0.],
       [ 0.,  4., 11.,  0.,  1., 12.,  7.,  0.],
       [ 0.,  2., 14.,  5., 10., 12.,  0.,  0.],
       [ 0.,  0.,  6., 13., 10.,  0.,  0.,  0.]])

Digits - 1

array([[ 0.,  0.,  0., 12., 13.,  5.,  0.,  0.],
       [ 0.,  0.,  0., 11., 16.,  9.,  0.,  0.],
       [ 0.,  0.,  3., 15., 16.,  6.,  0.,  0.],
       [ 0.,  7., 15., 16., 16.,  2.,  0.,  0.],
       [ 0.,  0.,  1., 16., 16.,  3.,  0.,  0.],
       [ 0.,  0.,  1., 16., 16.,  6.,  0.,  0.],
       [ 0.,  0.,  1., 16., 16.,  6.,  0.,  0.],
       [ 0.,  0.,  0., 11., 16., 10.,  0.,  0.]])

Digits

Digits

Principal Component Analysis

  • PCA está diretamente relacionado aos autovetores e autovalores das matrizes de covariância.
  • Vamos então fazer uma revisão rápida de autovetores, autovalores, e matrizes de covariância.

Autovetores e Autovalores

Dada uma matriz \(d \times d\) \(A\), um par \((\lambda, u)\) que satisfaz

\(A u = \lambda u\)

é chamado de autovalor \(\lambda\) e autovetor correspondente \(u\) de \(A\).

Matrizes Simétricas

  • \(\lambda \in \mathbb{R}\) e \(u \in \mathbb{R}^d\) (sem números complexos envolvidos)
  • Os autovetores são ortogonais

Matriz de Covariância

Matriz de Covariância

Matriz de Covariância

Principal Component Analysis: intuição

Principal Component Analysis: intuição

Principal Component Analysis

Principal Component Analysis

PCA de digits

PCA de digits

Escalando

  • A matriz de covariância pode ser realmente grande!
    • \(\Sigma\) é \(n\) por \(n\)
    • 10000 features não são incomuns
    • calcular autovetores é lento…
  • Solução: Singular Value Decomposition (SVD)
    • Encontra os \(k\) maiores autovetores
    • Amplamente implementado de forma robusta nos principais packages

Singular Value Decomposition (SVD)

  • https://en.wikipedia.org/wiki/Singular_value_decomposition

Dimensionality Reduction Techniques

  • https://en.wikipedia.org/wiki/Dimensionality_reduction
    • Principal component analysis (PCA)
    • Non-negative matrix factorization (NMF)
    • Linear discriminant analysis (LDA)
    • t-SNE
    • UMAP
    • muitos outros

Locally Linear Embedding (LLE)

Preservando as Vizinhanças Locais da Variedade

LLE

Leia mais

PCA vs LLE

Graph Layout usando uma abordagem baseada em forças

SNE e t-SNE

AQUI está uma excelente palestra do criador do t-SNE: video link

Leia mais

Leia mais

E quanto à interação do usuário?