Módulo 4 · Aplicaciones integradoras

14. Aplicaciones con bases en álgebra

¿Cómo convierto sensores y laboratorio en matrices listas para modelar?

Mate MathPlay · Flotación Cu · Archivo de trabajo: flotacion_cobre.xlsx

Flotación CuExcelPythonML básico

Aplicaciones con bases en álgebra

Usamos matrices, vectores, normas y transformaciones para estructurar datos de flotación y preparar modelos básicos.

1. Pregunta de planta

El álgebra nos ayuda a ordenar muchas variables de planta en una estructura que pueda procesarse: una matriz.

Idea central: cuando armamos una matriz X con sensores y una salida y, ya estamos preparando el terreno para regresión, clasificación, PCA y detección de anomalías.

2. Aplicación algebraica al caso

Base algebraicaAplicaciónLectura operativa
Matriz de datosFilas = horas, columnas = variables.Histórico ordenado de planta.
VectoresUn vector por condición operativa.Foto del estado de una hora.
NormasDistancia frente al comportamiento normal.Detector simple de anomalías.
PCAReducir muchas variables a pocos componentes.Patrones dominantes de variabilidad.
Transformación linealCombinar variables con pesos.Score, recuperación estimada o riesgo.

3. Excel: matriz operativa

En Excel la matriz X es simplemente un rango de columnas.

X = columnas de variables operativas flujo_aire, nivel_celda, ph, dosificacion_espumante, p80, densidad_pulpa y = recuperacion_cu o evento_sobre_espumacion

Score algebraico simple

=0.25*I2 + 0.30*J2 + 0.15*K2 + 0.30*L2

Distancia simple frente a una condición normal

=RAIZ((I2-prom_aire)^2 + (J2-prom_nivel)^2 + (L2-prom_espumante)^2)

4. Python: matriz X, vector y y escalamiento

import pandas as pd
from sklearn.preprocessing import StandardScaler

archivo = "flotacion_cobre.xlsx"
df = pd.read_excel(archivo)

features = [
    "ley_cabeza_cu", "densidad_pulpa", "p80", "flujo_aire",
    "nivel_celda", "ph", "dosificacion_espumante", "dosificacion_colector"
]

X = df[features]
y_reg = df["recuperacion_cu"]
y_clf = df["evento_sobre_espumacion"]

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

X.shape, y_reg.shape, y_clf.shape

Distancia algebraica como alerta

import numpy as np

centro = X_scaled.mean(axis=0)
df["distancia_normal"] = np.linalg.norm(X_scaled - centro, axis=1)

umbral = df["distancia_normal"].quantile(0.90)
df["alerta_distancia"] = (df["distancia_normal"] > umbral).astype(int)

df[["distancia_normal", "alerta_distancia", "evento_sobre_espumacion"]].head()

5. Puente hacia Machine Learning

Con la matriz lista, podemos entrenar modelos básicos sin cambiar la estructura conceptual.

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
from sklearn.metrics import classification_report

X_train, X_test, y_train, y_test = train_test_split(
    X, y_clf, test_size=0.2, random_state=42, stratify=y_clf
)

modelo = make_pipeline(StandardScaler(), LogisticRegression(max_iter=1000))
modelo.fit(X_train, y_train)

pred = modelo.predict(X_test)
print(classification_report(y_test, pred))

Mensaje final: el álgebra es la forma en que convertimos sensores, laboratorio y operación en una estructura que los modelos pueden leer.

← Lección anteriorDescargar datosSiguiente lección →