Enfoque guia: Transformaciones lineales
¿Como combino variables para estimar una salida?
Ver concepto general MathPlay →Transformaciones lineales
y = Xβ — estimar recuperación y cerrar el soft sensor educativo
Mapa del curso (Pasos 1–8)
| Paso | Concepto | Salida operativa |
|---|---|---|
| 1 | σ | ¿Inestable? |
| 2 | Correlación | Sospechosos |
| 3 | Probabilidad | Frecuencia e impacto |
| 4 | Bayes | Riesgo actualizado |
| 5 | Matriz X | 120×6 sensores |
| 6 | Eigen / PCA | Patrones PC1–PC2 |
| 7 | Norma | Distancia al normal |
| 8 | Transformación lineal | Recuperación estimada |
Objetivo final: combinar sensores en una ecuación y = Xβ que estime recuperación — mismo núcleo que LinearRegression y un soft sensor de KPI.
1. Matemática simple
y = β₀ + β₁·pH + β₂·P80 + β₃·aire + β₄·espumante + β₅·nivel + β₆·ley_cabeza
y = X · β
Cada βᵢ: cambio estimado en recuperación (%) si sube 1 unidad la variable i (modelo lineal simple).
Coeficientes demo (recuperación Cu)
| Variable | β | Lectura |
|---|---|---|
| Intercepto | +101,8 | Base |
| pH | +0,99 | ↑ pH → ↑ rec (demo) |
| P80 | −0,02 | Leve efecto molienda |
| Flujo de aire | −0,06 | Leve efecto |
| Espumante | −0,27 | Más espumante → ↓ recuperación |
| Nivel celda | −0,10 | Nivel alto → ↓ rec |
| Ley cabeza | +0,11 | ↑ feed → ↑ rec |
R² ≈ 0,79 · MAE ≈ 1,3 puntos % (demo n=120).
2. Clasificación — misma idea, salida probabilidad
P(evento) = σ(X · β) σ = sigmoide
| Objetivo | Modelo | Salida |
|---|---|---|
| Recuperación Cu | Regresión lineal | % continuo |
| Sobre-espumación | Regresión logística | P(evento) 0–1 |
3. Excel
Abre o descargue CSV demo.
LINEST
=LINEST(G2:G121; H2:M121; VERDADERO; VERDADERO)
G = recuperación · H:M = 6 variables X. Última celda del bloque = R².
Predicción (una hora)
=$B$0 + $B$1*H2 + $B$2*I2 + ... + $B$6*M2
Demo última hora: real ≈ 87,2 % · estimada ≈ 84,2 %.
4. Python — soft sensor completo
Abre o descargue CSV demo.
import pandas as pd
from sklearn.linear_model import LinearRegression, LogisticRegression
from sklearn.metrics import r2_score, mean_absolute_error
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
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
y_rec = df["recuperacion_cu_pct"].values
y_evt = df["sobre_espumacion"].values
reg = LinearRegression().fit(X, y_rec)
print("R2:", round(r2_score(y_rec, reg.predict(X)), 3))
print("MAE:", round(mean_absolute_error(y_rec, reg.predict(X)), 2))
clf = Pipeline([("scale", StandardScaler()),
("model", LogisticRegression(max_iter=500, class_weight="balanced"))])
clf.fit(X, y_evt)
x = X[-1:]
print("Rec est:", round(reg.predict(x)[0], 1))
print("P(evento):", round(clf.predict_proba(x)[0,1], 2))
5. Soft sensor educativo integrado
Cierre Módulos 1 y 2: estadística + álgebra sobre el mismo caso de flotación. No es magia — es razonamiento medible. Con datos reales y permiso de planta, el mismo pipeline escala a un piloto.
6. Investigación Sugerida
Tarea final: elige 1 hora con evento=1. Reporta: distancia (Paso 7), P(evento), recuperación real vs estimada. ¿Qué haría el operador?
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.
