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 – otra mirada (Bernard)

IRIS – clustering

IRIS – k-means

Wolfram Mathematica FindClusters

Wolfram Mathematica FindClusters

Lectura recomendada

Dimensionality Reduction

  • ¡Los datos de entrada pueden tener miles o millones de dimensiones!

  • Dimensionality Reduction representa los datos con menos dimensiones

    • aprendizaje más fácil – menos parámetros
    • visualization – muestra datos de alta dimensionalidad en 2D o 3D
    • descubre la “dimensionalidad intrínseca” de los datos

Dimensionality Reduction (Yi Zhang)

  • Suposición: los datos se encuentran en un espacio de menor dimensión

Dimensionality Reduction (Bishop)

  • Supongamos un dataset de “3s” perturbados de varias formas
  • ¿Qué operaciones realizamos? ¿Cuál es la dimensionalidad intrínseca?

  • Aquí la variedad subyacente es no lineal

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á directamente relacionado con los autovectores y autovalores de las matrices de covarianza.
  • Hagamos entonces un repaso rápido de autovectores, autovalores, y matrices de covarianza.

Autovectores y Autovalores

Dada una matriz \(d \times d\) \(A\), un par \((\lambda, u)\) que satisface

\(A u = \lambda u\)

se llama autovalor \(\lambda\) y autovector correspondiente \(u\) de \(A\).

Matrices Simétricas

  • \(\lambda \in \mathbb{R}\) y \(u \in \mathbb{R}^d\) (sin números complejos involucrados)
  • Los autovectores son ortogonales

Matriz de Covarianza

Matriz de Covarianza

Matriz de Covarianza

Principal Component Analysis: intuición

Principal Component Analysis: intuición

Principal Component Analysis

Principal Component Analysis

PCA de digits

PCA de digits

Escalando

  • ¡La matriz de covarianza puede ser realmente grande!
    • \(\Sigma\) es \(n\) por \(n\)
    • 10000 features no son poco comunes
    • calcular autovectores es lento…
  • Solución: Singular Value Decomposition (SVD)
    • Encuentra los \(k\) autovectores más grandes
    • Ampliamente implementado de forma robusta en los principales 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
    • muchas otras

Locally Linear Embedding (LLE)

Preservando los Vecindarios Locales de la Variedad

LLE

Leer más

PCA vs LLE

Graph Layout usando un enfoque basado en fuerzas

SNE y t-SNE

AQUÍ hay una excelente charla del creador de t-SNE: video link

Leer más

Leer más

¿Qué hay de la interacción del usuario?