Curso 2 · Modulo 3 · Mineria de datos

26. Sistemas de soporte de decisiones

Como convertir analisis y modelos en una recomendacion operativa simple?

Mate MathPlay · Flotacion Cu · Archivo de trabajo: flotacion_cobre.xlsx

Flotacion CuExcelPythonSoporte a decisiones

Sistemas de soporte de decisiones

Armamos una logica de semaforo que combina riesgo, recuperacion estimada y estabilidad del proceso.

Mapa rapido

ComponenteUso en clase
ExcelSemaforos, reglas y prioridades.
Pythonscore_decision + semaforo
ML / mineria de datosTraducir predicciones en apoyo operativo

1. Pregunta de planta

Un sistema de soporte de decisiones no reemplaza al operador ni al metalurgista. Ordena informacion para que la decision sea mas rapida, trazable y consistente.

2. Matematica simple

Un score de decision combina varias senales.

score = peso1*riesgo + peso2*inestabilidad + peso3*perdida_recuperacion

Despues se traduce a semaforo: normal, atencion o critico.

3. Aplicacion en flotacion

Podemos integrar score de riesgo, desviacion reciente de nivel, recuperacion estimada y probabilidad de sobre-espumacion. La salida no es una orden automatica: es una prioridad de revision.

4. Excel

Semaforo simple:
=SI(score>=0.70,"Rojo",SI(score>=0.40,"Amarillo","Verde"))

Prioridad:
=SI(Y(prob_evento>0.7, recuperacion_estimada<88),"Revisar ahora","Monitorear")

5. Python

import pandas as pd

df = pd.read_excel("flotacion_cobre.xlsx")
df = df.sort_values("fecha_hora")

# Ejemplo educativo de score de soporte a decision
df["nivel_std_4h"] = df["nivel_celda"].rolling(4).std()
df["nivel_std_norm"] = df["nivel_std_4h"] / df["nivel_std_4h"].max()
df["riesgo_norm"] = df["score_riesgo"] / df["score_riesgo"].max()
df["perdida_rec_norm"] = (df["recuperacion_cu"].max() - df["recuperacion_cu"]) / (df["recuperacion_cu"].max() - df["recuperacion_cu"].min())

df["score_decision"] = (
    0.45*df["riesgo_norm"] +
    0.30*df["nivel_std_norm"].fillna(0) +
    0.25*df["perdida_rec_norm"]
)

def semaforo(x):
    if x >= 0.70:
        return "Rojo"
    if x >= 0.40:
        return "Amarillo"
    return "Verde"

df["semaforo"] = df["score_decision"].apply(semaforo)
print(df[["fecha_hora", "recuperacion_cu", "score_decision", "semaforo"]].tail(10))

6. Puente hacia operacion

Mensaje final: La clave es separar recomendacion de automatizacion. Primero se construye un soporte visible, explicable y auditable. Luego, si planta confia en la logica, se evalua automatizar partes del flujo.

← Leccion anteriorDescargar datosSiguiente leccion →