Caso aplicado · Curso 2 · Módulo 2 · Unidad 21

Enfoque guía: Reducción de la dimensionalidad

PCA — de 6 sensores a 2 ejes que el operador pueda mirar

Mate MathPlay · Flotación Cu · Material complementario

Flotación CuExcelPythonML no supervisado
Ver concepto general MathPlay · Ruta IA matemática (MathPlay) →
Curso 2 — Aprendizaje no supervisado · Módulo 2 · Unidad 2 de 3
Caso flotación Cu · Curso 2 · Unidad 21

Reducción de la dimensionalidad

PCA: comprimir 6 sensores en un gráfico 2D sin perder la señal de espuma

Puente desde Curso 1

En la unidad 6 (autovalores) y 8 (transformaciones lineales) ya viste que una matriz puede rotar el espacio de datos. PCA encuentra la rotación donde la varianza (movimiento real de planta) se concentra en pocos ejes.

Problema en planta: 6 curvas en el DCS abruman al turno. PCA permite un mapa 2D: un eje “estrés de espuma”, otro “variación de mineral”.

1. Matemática — PCA

Z = XW  ·  W = autovectores de la matriz de covarianza

Pasos: (1) estandarizar sensores, (2) calcular covarianza, (3) autovalores/autovectores, (4) proyectar en las 2 direcciones con mayor varianza.

Demo (6 variables, n=120)

ComponenteVarianza explicadaInterpretación tentativa
PC1~40 %Espumante y nivel (carga ≈ −0,58 / −0,55)
PC2~17 %Mezcla pH / aire / ley cabeza
PC1 + PC2~57 %Gráfico 2D útil en clase
En turno: si una hora cae lejos en PC1 (derecha del gráfico), revisar dosificación de espumante y nivel de celda — aunque el resto de sensores se vea “normal”.

2. PCA vs otras técnicas

PCA → lineal · rápido · explicable (cargas por sensor) t-SNE / UMAP → visual bonita · no usar para umbrales de alarma Autoencoder → no lineal · muchos datos · menos transparente Feature selection → quedarse con 2–3 sensores clave (metalurgia)
Regla: PCA para monitoreo y comunicación con el turno. No reemplaza el modelo supervisado de recuperación (unidad 16).

3. Excel — covarianza y proyección (2D)

CSV demo · matriz COVAR en rango estandarizado H2:M121.

=' Matriz covarianza 6x6:
=COVAR.MATRIZ(H2:M121)

=' En clase: usar PCA del Análisis de datos (si disponible)
=' o Python para autovectores exactos

=' Proyección fila 2 en PC1 (coeficientes desde Python):
=SUMAPRODUCTO(H2:M2; coef_PC1)

=' Graficar PC1 vs PC2; colorear sobre_espumacion

4. Python — PCA

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

features = ["ph","p80_um","flujo_aire","dosif_espumante_ml_min","nivel_celda_pct","ley_cabeza_cu_pct"]
df = pd.read_csv("datos_flotacion_demo.csv")
X = StandardScaler().fit_transform(df[features])

pca = PCA(n_components=2)
Z = pca.fit_transform(X)
print("Varianza PC1, PC2:", [round(v*100,1) for v in pca.explained_variance_ratio_])
print("Cargas PC1:", dict(zip(features, pca.components_[0].round(2))))

plt.scatter(Z[:,0], Z[:,1], c=df["sobre_espumacion"], cmap="coolwarm", alpha=0.7)
plt.xlabel("PC1"); plt.ylabel("PC2"); plt.title("Flotación Cu — PCA 2D")
plt.savefig("pca_flotacion.png", dpi=120)

5. Investigación sugerida

¿Las 14 horas con espuma quedan agrupadas en un rincón del gráfico PC1–PC2? Propón un umbral visual en PC1 para alerta temprana.

Regístrate al boletín MathPlay

Datos, simulación, visualización, IA y tecnología aplicada a problemas reales de industria y minería.

Sin calendario fijo. Sin spam.

Listo. Te escribo cuando haya algo nuevo.

← Clustering Siguiente: Anomalías sin etiqueta → Descargar CSV