🧮 Computational Mathematics

Inicio · Parte 14 — Matemática de Machine Learning

297 — PCA aplicado a ML

ml-avanzado clase 17 de 20 4 horas demostración pca_ml

PCA elige las direcciones de máxima varianza, y a menudo unas pocas bastan.

Fórmulas

autovectores de la matriz de covarianza
varianza explicada por PCᵢ = λᵢ / Σλⱼ
equivale a la SVD de los datos centrados

Desarrollo

PCA busca las direcciones en las que los datos varían más y las usa como nuevo sistema de coordenadas. Las componentes son los autovectores de la matriz de covarianza, ordenados por autovalor, y cada autovalor mide cuánta varianza captura su dirección.

Su valor práctico está en que la varianza suele concentrarse en pocas componentes. Si dos componentes de cincuenta explican el 95 % de la varianza, se puede trabajar con dos dimensiones en vez de cincuenta, perdiendo poco. Eso acelera el cómputo, reduce el ruido y permite visualizar.

Como se vio en la parte 06, PCA es la SVD de los datos centrados, y por eso en la práctica se calcula así en vez de formando la covarianza: la SVD es numéricamente más estable y evita elevar al cuadrado el número de condición, exactamente el problema de la clase 234.

Dos precauciones. Hay que estandarizar si las características tienen escalas distintas, porque si no la de mayor rango domina las componentes por razones de unidades. Y las componentes son combinaciones lineales de todas las variables originales, lo que las hace difíciles de interpretar: PCA sacrifica interpretabilidad a cambio de compresión, y para selección de variables interpretable es mejor Lasso.

Ejemplo trabajado

PCA sobre datos bidimensionales correlacionados.

matriz de covarianza:
  [[3,3785  2,4463]
   [2,4463  2,5285]]

autovalores: [5,436476 ; 0,470507]

varianza explicada por PC1: 92,03 %
PC1 = (0,765237 ; 0,643749)

Reduciendo de 2 dimensiones a 1:
  accuracy usando solo PC1 = 1,0                     ✓

Se descartó el 8 % de la varianza y no se perdió
nada de capacidad discriminante.

Advertencia: la varianza no siempre coincide con
la información útil para clasificar.

Qué calcula el laboratorio

PCA como preprocesamiento: cuánta varianza se conserva.

python classes/part-14-matematica-de-machine-learning/297-pca-aplicado-a-ml/lab.py
compmath run 297

Salidas del laboratorio (9)

Muestra de la ejecución real

{
  "dimension_original": 2,
  "covarianza": [
    [
      3.3785,
      2.4463
    ],
    [
      2.4463,
      2.5285
    ]
  ],
  "autovalores": [
    5.436476,
    0.470507
  ],
  "varianza_explicada_PC1_%": 92.0347,
  "PC1": [
    0.765237,
    0.643749
  ],
  "accuracy_usando_solo_PC1": 1.0
}

Errores comunes

Dónde se usa

Reducción de dimensión, visualización de datos, compresión, eliminación de ruido y preprocesamiento antes de modelos sensibles a la dimensión.

Idea rectora de la parte

Ridge y Lasso resuelven el mismo problema con normas distintas y geometría distinta.

Error a evitar

Elegir hiperparámetros con el conjunto de test.

Conexión con IA

Estos algoritmos siguen siendo la línea base honesta contra la que se debe comparar cualquier modelo profundo.

Bibliografía de la clase

Archivos de la clase