Caso aplicado · Enfoque clase

Enfoque clase: Espacios vectoriales y normas

¿Que tan lejos esta la condicion actual de lo normal?

Mate MathPlay · Flotación Cu · Material revisado

Flotación CuExcelPython
Ver concepto general MathPlay →
Inteligencia artificial aplicada a minería · Módulo 2

Espacios vectoriales y normas en flotación de cobre

Cómo medir qué tan lejos está una condición actual respecto a una operación normal.

Idea Central

Si cada fila de la tabla histórica es un vector, podemos hacer una pregunta muy operativa:

¿La condición actual se parece a una operación normal o ya está demasiado lejos?

Las normas permiten medir distancia multivariable. No miramos un sensor aislado: miramos la combinación completa de variables.

1. Matemática Simple

Vector

Estado de planta

x = [p80, aire, nivel, espumante]

Una hora de operación puede verse como un vector.

Espacio vectorial

Nube de estados

Cada punto = una hora Cada dimensión = una variable

El histórico forma una nube de condiciones posibles.

Norma

Distancia

distancia = raíz de suma de diferencias al cuadrado

Mide qué tan lejos está un registro de la zona normal.

Ejemplo

x_normal = [160, 120, 70, 30] x_actual = [195, 155, 88, 48] x_actual - x_normal = [35, 35, 18, 18]

2. Aplicación Al Caso De Sobre-Espumación

Problema: en una planta concentradora de cobre ocurre sobre-espumación en celdas de flotación. Esto desestabiliza nivel de pulpa, espuma, arrastre, ley de concentrado y recuperación.

Pregunta operativa: ¿podemos detectar condiciones que anticipan la sobre-espumación y estimar su impacto sobre la recuperación?

Con espacios vectoriales y normas, la pregunta se vuelve: ¿la condición actual se parece a una operación normal o ya está demasiado lejos?

3. Antes De Medir Distancia, Hay Que Escalar

Las variables tienen escalas distintas. Si no escalamos, la variable con números más grandes domina la distancia.

P80 puede estar entre 120 y 240 pH puede estar entre 9.5 y 11 Espumante puede estar entre 20 y 60 Nivel puede estar entre 50 y 100

Estandarización

z = (valor - promedio) / desviación_estándar z = 0 valor normal z = +1 una desviación estándar por encima z = -1 una desviación estándar por debajo z = +2 valor alto o raro

4. Vectores Operativos Del Caso

Vector operativo Variables Uso
Vector de espuma flujo_aire, nivel_celda, espumante Detectar inestabilidad de espuma
Vector de molienda/liberación p80, ley_relave_cu, recuperacion_cu Detectar pérdida metalúrgica
Vector de control químico ph, espumante, colector Detectar régimen químico fuera de patrón
Vector global de planta ley_cabeza, densidad, p80, aire, nivel, pH, reactivos Score general de anomalía

5. Excel: Ejercicio Guiado

Archivo de trabajo: Abre o descargue flotacion_cobre.xlsx

flotacion_cobre.xlsx

Hoja: Datos

Paso 1: calcular promedio y desviación

Promedio de P80: =PROMEDIO(Datos!H2:H241) Desviación de P80: =DESVEST.M(Datos!H2:H241)

Paso 2: estandarizar

Para P80: =(H2-promedio_p80)/desv_p80 Para flujo de aire: =(I2-promedio_aire)/desv_aire Para nivel: =(J2-promedio_nivel)/desv_nivel

Paso 3: calcular distancia

=RAIZ(Z_P80^2 + Z_AIRE^2 + Z_NIVEL^2 + Z_ESPUMANTE^2 + Z_PH^2 + Z_DENSIDAD^2) O también: =RAIZ(SUMAPRODUCTO(rango_z;rango_z))

Semáforo pedagógico

< 2Normal: condición cercana al patrón histórico.
2 a 3Alerta: condición se está alejando.
> 3Anomalía: condición merece revisión.

6. Python: Mismo Cálculo

Archivo de trabajo: Abre o descargue flotacion_cobre.xlsx

import pandas as pd
import numpy as np

df = pd.read_excel(
    "flotacion_cobre.xlsx",
    sheet_name="Datos"
)

Seleccionar variables

variables = [
    "densidad_pulpa",
    "p80",
    "flujo_aire",
    "nivel_celda",
    "ph",
    "dosificacion_espumante"
]

X = df[variables]

Estandarizar y calcular distancia

from sklearn.preprocessing import StandardScaler

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

centro_normal = X_scaled.mean(axis=0)

df["distancia_operativa"] = np.linalg.norm(
    X_scaled - centro_normal,
    axis=1
)

Revisar registros más alejados

df[[
    "fecha_hora",
    "distancia_operativa",
    "evento_sobre_espumacion",
    "nivel_celda",
    "flujo_aire",
    "dosificacion_espumante"
]].sort_values("distancia_operativa", ascending=False).head(10)

Comparar con y sin evento

df.groupby("evento_sobre_espumacion")["distancia_operativa"].mean()
Ver funcionando código python

7. Puente Hacia Machine Learning

Archivo de trabajo: Abre o descargue flotacion_cobre.xlsx

La distancia operativa puede convertirse en una nueva variable para un modelo.

Vector P80, aire, nivel, pH, densidad, espumante.
Norma Distancia frente a operación normal.
Feature ML distancia_operativa.

Agregar distancia al modelo

features_ml = [
    "flujo_aire",
    "nivel_celda",
    "dosificacion_espumante",
    "p80",
    "densidad_pulpa",
    "distancia_operativa"
]

X_modelo = df[features_ml]
y = df["evento_sobre_espumacion"]
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression

X_train, X_test, y_train, y_test = train_test_split(
    X_modelo, y, test_size=0.2, random_state=42, stratify=y
)

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

La idea central es: primero conviertes el estado operativo en un vector, luego calculas su distancia frente a una operación normal, y finalmente usas esa distancia como una variable adicional del modelo.

Ver funcionando código python

8. Advertencia Profesional

Una distancia alta no dice automáticamente cuál es la causa; dice que la condición merece revisión.

La distancia depende de las variables seleccionadas, el escalamiento, la calidad de sensores, la definición de operación normal y los cambios de mineralogía.

9. Cierre Conceptual

Los espacios vectoriales y normas permiten pasar de esta pregunta:

¿Esta variable está alta?

A esta otra:

¿La combinación completa de variables se alejó de la operación normal?
Mensaje final: una planta puede verse como una nube de puntos en un espacio de variables. Cada registro es un vector. La norma mide qué tan lejos está ese registro de la zona normal. En flotación, esa distancia puede convertirse en un primer score de anomalía antes de construir modelos más complejos.

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.

← Volver al caso