Curso 2 · Módulo 1 · Aprendizaje supervisado

16. Modelos de regresión

¿Cómo estimar recuperación de cobre usando variables de planta?

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

Flotación CuExcelPythonMachine Learning

Modelos de regresión

Usamos aprendizaje supervisado para predecir una salida numérica: la recuperación de cobre a partir de condiciones operativas.

1. Pregunta de planta

En aprendizaje supervisado tenemos datos históricos donde ya conocemos la respuesta. Para regresión, la respuesta es numérica.

Idea central: usamos variables de operación para estimar un número continuo, por ejemplo la recuperación de cobre.
Entrada X = aire, nivel, pH, P80, densidad, espumante, colector Salida y = recuperacion_cu

2. Matemática simple

Un modelo de regresión busca una función que aproxime una salida continua.

recuperacion_estimada = f(variables_de_planta)

La regresión lineal lo expresa como una combinación de pesos:

y = b0 + b1*aire + b2*nivel + b3*pH + b4*espumante + ...
Lectura simple: entrenar el modelo significa aprender los pesos que mejor aproximan la recuperación histórica.

3. Aplicación en flotación

VariableRolPregunta operativa
recuperacion_cuObjetivo numérico¿Cuánto cobre recupero?
flujo_aire, nivel_celdaVariables de operación¿La celda está operando en zona razonable?
p80, densidad_pulpaCondición del mineral/pulpa¿El material favorece o complica la recuperación?
dosificacion_espumanteReactivo¿Ayuda a flotación o aumenta riesgo de espuma?

4. Excel: regresión explicada sin programar

Ejemplo rápido con una variable: recuperación frente a flujo de aire.

Pendiente e intersección

Pendiente: =PENDIENTE(F2:F241,I2:I241) Intersección: =INTERSECCION.EJE(F2:F241,I2:I241)

Recuperación estimada

=interseccion + pendiente*I2

Error absoluto

=ABS(F2-recuperacion_estimada)

Para varias variables, se puede usar ESTIMACION.LINEAL o preparar los datos para Python.

Advertencia: una buena regresión no implica causalidad. Puede estimar bien sin explicar completamente el fenómeno metalúrgico.

5. Python: modelo de regresión

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error, r2_score

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 = df["recuperacion_cu"]

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

modelo = make_pipeline(StandardScaler(), LinearRegression())
modelo.fit(X_train, y_train)

pred = modelo.predict(X_test)
print("MAE:", mean_absolute_error(y_test, pred))
print("R2:", r2_score(y_test, pred))

6. Lectura operativa

La regresión puede funcionar como un sensor blando o referencia de consistencia.

  • Si la recuperación real se aleja mucho de la estimada, puede haber condición no capturada.
  • Si el error crece con el tiempo, puede existir cambio de mineralogía, sensor o reactivo.
  • Si el modelo estima baja recuperación, conviene revisar variables dominantes antes de actuar.

Mensaje final: la regresión no reemplaza el laboratorio ni el criterio metalúrgico. Ayuda a estimar, comparar y detectar desviaciones entre lo esperado y lo real.

← Lección anteriorDescargar datosSiguiente lección →