Caso aplicado · Curso 2 · Módulo 3 · Unidad 23

Enfoque guía: Ingeniería y selección de características

De sensores crudos a variables que el modelo y el turno entienden

Mate MathPlay · Flotación Cu · Material complementario

Flotación CuExcelPythonMinería de datos
Ver concepto general MathPlay · Ruta IA matemática (MathPlay) →
Curso 2 — Minería de datos · Módulo 3 · Unidad 1 de 4
Caso flotación Cu · Curso 2 · Unidad 23

Ingeniería y selección de características

Crear, filtrar y elegir variables antes de entrenar — el 80 % del éxito en planta

Puente desde Módulos 1 y 2

En las unidades 16–22 usamos 6 sensores base. En planta real el historiador trae 20–50 columnas. Feature engineering = convertir datos crudos en señales útiles. Selección = quedarse solo con las que aportan, sin ruido.

Problema: meter todas las columnas “porque están ahí” empeora el modelo, confunde al operador y encarece el mantenimiento.

1. Matemática — crear features

xnueva = f(x1, …, xp, t)  ·  selección: S ⊂ {1,…,p}

Features típicas en flotación (demo)

Feature nuevaFórmula / ideaPara qué en turno
ratio_esp_nivelespumante / nivelPresión de espuma en celda llena
rec_lag1recuperación t−1Inercia del KPI (U19)
rec_ma6media móvil 6 hTendencia del turno
turno_Bdummy 0/1Efecto cuadrilla
ph_x_aireproducto pH × aireInteracción no lineal suave

Selección (demo referencia)

MétodoResultado típicoUso
Correlación con rec.espumante r ≈ −0,45Filtro rápido Excel
Importancia RFespumante, nivel, rec_lag1 arribaPriorizar sensores DCS
RFE / Lassoquita P80 si redundanteModelos finos
Regla: cada feature nueva debe tener nombre metalúrgico y dueño en planta. Si nadie puede explicarla, no va al panel.

2. Escalera feature → modelo

Paso 1 Sensores crudos (CSV historiador) Paso 2 Limpieza (U24) + lags/ventanas (U19) Paso 3 Ratios e interacciones (esta unidad) Paso 4 Selección (correlación → importancia → Lasso) Paso 5 Entrenar U16/U17 con set final

3. Excel — crear y rankear

CSV demo · ordenar por fecha_hora.

=' Ratio espumante / nivel:
=J2/K2

=' Lag recuperación (fila 3+):
=G2

=' Correlación con recuperación (rango ratio):
=COEF.DE.CORRELACIÓN(ratio_col; G:G)

=' Top features: ordenar |r| de mayor a menor

4. Python — pipeline de features

import pandas as pd
from sklearn.ensemble import RandomForestRegressor

df = pd.read_csv("datos_flotacion_demo.csv")
df["fecha_hora"] = pd.to_datetime(df["fecha_hora"])
df = df.sort_values("fecha_hora")

df["ratio_esp_nivel"] = df["dosif_espumante_ml_min"] / df["nivel_celda_pct"]
df["rec_lag1"] = df["recuperacion_cu_pct"].shift(1)
df["ph_x_aire"] = df["ph"] * df["flujo_aire"]
df = pd.get_dummies(df, columns=["turno"], prefix="turno", drop_first=True)

feat = [c for c in df.columns if c not in [
    "fecha_hora","obs_operador","sobre_espumacion","severidad",
    "recuperacion_cu_pct"]]
df2 = df.dropna()
X, y = df2[feat], df2["recuperacion_cu_pct"]

rf = RandomForestRegressor(n_estimators=100, random_state=42)
rf.fit(X, y)
imp = pd.Series(rf.feature_importances_, index=feat).sort_values(ascending=False)
print(imp.head(8))

5. Investigación sugerida

Compara MAE del soft sensor (U16) con 6 sensores base vs con features de esta unidad. ¿Mejora lo suficiente para justificar más columnas en el DCS?

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.

← Anomalías NS Siguiente: Limpieza de datos → Descargar CSV