16. Modelos de regresión
¿Cómo estimar recuperación de cobre usando variables de planta?
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.
2. Matemática simple
Un modelo de regresión busca una función que aproxime una salida continua.
La regresión lineal lo expresa como una combinación de pesos:
3. Aplicación en flotación
| Variable | Rol | Pregunta operativa |
|---|---|---|
recuperacion_cu | Objetivo numérico | ¿Cuánto cobre recupero? |
flujo_aire, nivel_celda | Variables de operación | ¿La celda está operando en zona razonable? |
p80, densidad_pulpa | Condición del mineral/pulpa | ¿El material favorece o complica la recuperación? |
dosificacion_espumante | Reactivo | ¿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
Recuperación estimada
Error absoluto
Para varias variables, se puede usar ESTIMACION.LINEAL o preparar los datos para Python.
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.
