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

Enfoque guía: Descubrimiento de conocimiento para el análisis

Proceso KDD / CRISP-DM aplicado a flotación Cu — del CSV al insight

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 3 de 4
Caso flotación Cu · Curso 2 · Unidad 25

Descubrimiento de conocimiento (KDD)

El mapa completo: negocio → datos → modelos → hallazgos que el turno usa

Idea central

KDD (Knowledge Discovery in Databases) no es un algoritmo: es el proceso de sacar conocimiento útil de datos. En minería: “¿qué combinación de variables anticipa pérdida de cobre al relave?”

Las unidades 16–24 son pasos del KDD. Aquí los ordenamos como proyecto de planta.

1. Proceso KDD en flotación

1. Selección → definir KPI: recuperación Cu, evento espuma 2. Preproceso → U24 limpieza, alinear fecha_hora 3. Transformación → U23 features, U21 PCA, lags U19 4. Minería → U16 regresión · U17 clasif. · U20 cluster 5. Interpretación → reglas para metalurgia y turno 6. Evaluación → MAE, recall espuma, costo de 1 pp rec.

Insight = patrón válido + acción + dueño en planta

2. Hallazgos del demo (validados)

#PatrónEvidenciaAcción sugerida
1Espumante alto → rec. bajaβ ≈ −0,27 (U16)Revisar dosificación
214 h estrés forman clusterK=2 (U20)Modo “inestable” en panel
3Evento raro ~12 %14/120 (U17)No usar accuracy sola
4Caída 3 h seguidaslags U19Alerta temporal
CRISP-DM: mismo espíritu con ciclo de negocio explícito. Documenta cada iteración: “v3 del modelo — agregamos nivel_ma6”.

3. Excel — tablero de hallazgos

CSV demo · tabla resumen por turno y por evento.

=' Recuperación media por turno:
=PROMEDIO.SI($B$2:$B$121; "A"; $G$2:$G$121)

=' % horas con espuma por turno:
=CONTAR.SI.CONJUNTO($R$2:$R$121; 1; $B$2:$B$121; "A")/CONTAR.SI($B$2:$B$121; "A")

=' Tabla dinámica: filas=turno, columnas=sobre_espumacion, valores=prom rec.

4. Python — reporte KDD automático

import pandas as pd

df = pd.read_csv("datos_flotacion_demo.csv")
report = {
    "n_horas": len(df),
    "rec_media": round(df["recuperacion_cu_pct"].mean(), 1),
    "pct_espuma": round(df["sobre_espumacion"].mean() * 100, 1),
    "rec_sin_evento": round(df.loc[df["sobre_espumacion"]==0, "recuperacion_cu_pct"].mean(), 1),
    "rec_con_evento": round(df.loc[df["sobre_espumacion"]==1, "recuperacion_cu_pct"].mean(), 1),
}
by_turno = df.groupby("turno").agg(
    rec=("recuperacion_cu_pct", "mean"),
    pct_espuma=("sobre_espumacion", "mean")
).round(2)
print("=== KDD Flotación Cu ===")
for k, v in report.items():
    print(f"  {k}: {v}")
print(by_turno)

5. Investigación sugerida

Escribe un informe de 1 página: objetivo de negocio, datos usados, 3 hallazgos, 2 acciones. Formato comité de metalurgia.

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.

← Limpieza Siguiente: Soporte decisiones → Descargar CSV