La reducción de dimensiones con descomposición de matrices es una técnica fundamental en procesamiento de imágenes y aprendizaje automático. Aquí te explico brevemente cómo funciona, y luego te muestro un ejemplo práctico con código en Python utilizando PCA (Análisis de Componentes Principales), que es uno de los métodos más usados y se basa en descomposición en valores singulares (SVD).
🔎 ¿Qué es la Reducción de Dimensiones con Descomposición de Matrices?
Objetivo: Transformar datos de alta dimensión (por ejemplo, una imagen de 1024x1024 píxeles) en una representación de menor dimensión que conserve la mayor parte de la información relevante.
🔧 Técnicas comunes:
MétodoTipo de descomposiciónUtilidadPCADescomposición en valores singulares (SVD)Análisis lineal, reducción de ruidoSVD directamenteSVD pura: A = UΣVᵀCompresión y reconstrucciónNMFFactorización no negativaInterpretabilidad, imágenes con sólo valores positivosLDADescomposición basada en clasesReducción supervisada para clasificación
📷 Ejemplo: Reducción de Dimensiones de una Imagen con PCA
Paso 1: Cargar imagen y convertirla a escala de grises
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from skimage.color import rgb2gray
from skimage.io import imread
# Cargar imagen y convertirla a escala de grises
img = imread('https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/600x600\_black\_and\_white\_mandelbrot\_set.png/512px-600x600\_black\_and\_white\_mandelbrot\_set.png')
gray_img = rgb2gray(img)
plt.imshow(gray_img, cmap='gray')
plt.title('Imagen Original')
plt.axis('off')
plt.show()
Paso 2: Aplicar PCA para reducción de dimensiones
# Aplicamos PCA fila por fila (columnas son las características)
pca = PCA(n_components=50) # Elige cuántas componentes principales conservar
img_transformed = pca.fit_transform(gray_img)
img_reconstructed = pca.inverse_transform(img_transformed)
plt.imshow(img_reconstructed, cmap='gray')
plt.title('Imagen Reconstruida con PCA (50 componentes)')
plt.axis('off')
plt.show()
📉 Comparación visual
- Imagen original: contiene toda la información (512x512 píxeles)
- Imagen PCA (50 componentes): comprimida y reconstruida
- Puedes experimentar con
n_components=10, 20, 100, etc.
✅ Beneficios
- Reducción de almacenamiento: Ideal para compresión de imágenes.
- Filtrado de ruido: PCA tiende a conservar la señal fuerte y reducir el ruido.
- Velocidad: Con datos más pequeños, los modelos aprenden más rápido.