Enfoque guía: Aplicaciones con base en álgebra
Soft sensor completo: matriz X, distancia, PCA y regresión en un solo flujo
Ver concepto general MathPlay · Álgebra para IA (MathPlay) →Módulo 4 — Aplicaciones · Unidad 2 de 3
Aplicaciones con base en álgebra
Una fila de sensores → geometría + estimación KPI — arquitectura del soft sensor educativo
Idea central
El Módulo 2 construyó el idioma (matrices, distancias, transformaciones). Esta unidad lo convierte en producto: entrada SCADA/CSV → salidas interpretables para operación.
1. Arquitectura del soft sensor (demo)
CSV / SCADA → vector x ∈ R⁼ (1 hora)
|
+-- Matriz X (120×6) → contexto histórico
+-- PCA (PC1, PC2 ~ 60 %) → patrón global
+-- Norma ||x - x₀|| → anomalía multivariada
| demo: sin evento ~13,8 | con evento ~39,8
+-- Regresión y = Xβ → recuperación estimada
R² ~ 0,79 | MAE ~ 1,3 %
x₀ = vector de medianas del histórico estable (misma idea unidad 7).
2. Flujo por hora (aplicación)
| Paso | Operación algebraica | Salida operativa |
|---|---|---|
| 1 | Construir x | 6 sensores alineados |
| 2 | d = ‖x − x₀‖ | ¿Lejos del normal? |
| 3 | z = W·x (scores PCA) | ¿En qué modo opero? |
| 4 | ŷ = x·β + β₀ | Recuperación estimada |
| 5 | Comparar ŷ vs lab | Validación / drift |
Integración con M4 estadística: si d es alto y P(evento) es alto, la alerta es más confiable que con una sola capa.
3. Excel + API (piloto futuro)
=' Distancia euclídea (6 vars estandarizadas simplificado):
=RAIZ(SUMAPRODUCTO((H2-MEDIANA(H:H))^2; ... ))
=' Predicción recuperación (betas de LINEST unidad 8):
= $B$0 + $B$1*H2 + ... + $B$6*M2
Arquitectura piloto:
Excel → POST /predict → Python (PCA + reg) → JSON → Excel
4. Python — soft sensor integrado
import pandas as pd
import numpy as np
from sklearn.decomposition import PCA
from sklearn.linear_model import LinearRegression
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 = df[features].values
x0 = np.median(X, axis=0)
# Distancia
d = np.linalg.norm(X - x0, axis=1)
# PCA
pca = PCA(n_components=2).fit(X)
scores = pca.transform(X)
# Regresión
y = df["recuperacion_cu_pct"].values
reg = LinearRegression().fit(X, y)
x = X[-1:]
out = {
"distancia": round(float(np.linalg.norm(x - x0)), 1),
"PC1": round(float(scores[-1,0]), 2),
"rec_est": round(float(reg.predict(x)[0]), 1),
}
print(out)
5. Investigación sugerida
Para 3 horas con evento=1: reporta d, PC1, recuperación real y estimada. ¿Qué salida activarías primero en sala de control?
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.
