Curso 2 · Módulo 2 · Aprendizaje no supervisado

20. Clustering

¿Cómo descubrir modos de operación sin etiquetas?

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

Flotación CuExcelPythonMachine Learning

Clustering

Agrupamos condiciones de flotación parecidas para encontrar zonas estables, transiciones y posibles zonas de riesgo.

1. Pregunta de planta

En aprendizaje no supervisado no le damos al modelo una respuesta correcta. Le pedimos que encuentre grupos o patrones en los datos.

Idea central: clustering agrupa horas de planta parecidas para descubrir modos de operación: estable, transición, riesgo o evento.
Datos X = sensores y variables de operación No hay y obligatoria = el modelo busca grupos

2. Matemática simple

Clustering se basa en cercanía. Dos horas pertenecen al mismo grupo si sus variables se parecen.

distancia = qué tan lejos están dos condiciones de planta

K-Means busca centros y asigna cada fila al centro más cercano.

Grupo 1: condiciones parecidas entre sí Grupo 2: otro modo operativo Grupo 3: zona de riesgo o transición

3. Aplicación en flotación

Grupo posibleLectura operacionalQué revisar
Cluster estableRecuperación alta, score bajo, variables dentro de rango.Condición de referencia.
Cluster transiciónVariables moviéndose, pero sin evento confirmado.Vigilar tendencia.
Cluster riesgoScore alto, espumante o nivel elevados.Revisar espuma, aire, nivel y reactivos.

4. Excel: clustering manual simplificado

Excel no necesita entrenar K-Means para explicar la idea. Primero se estandarizan variables y se calcula cercanía a condiciones tipo.

Z-score

=(I2-PROMEDIO(I:I))/DESVEST.M(I:I)

Distancia a operación normal

=RAIZ((z_aire-z_aire_normal)^2 + (z_nivel-z_nivel_normal)^2 + (z_espumante-z_espumante_normal)^2)

Grupo simple

=SI(distancia<1,"Estable",SI(distancia<2,"Transición","Riesgo"))

5. Python: K-Means aplicado

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans

archivo = "flotacion_cobre.xlsx"
df = pd.read_excel(archivo)

features = [
    "recuperacion_cu", "flujo_aire", "nivel_celda", "ph",
    "dosificacion_espumante", "p80", "densidad_pulpa", "score_riesgo"
]

X = df[features]
X_scaled = StandardScaler().fit_transform(X)

kmeans = KMeans(n_clusters=3, random_state=42, n_init=10)
df["cluster"] = kmeans.fit_predict(X_scaled)

resumen = df.groupby("cluster")[features + ["evento_sobre_espumacion"]].mean()
print(resumen)

6. Lectura operativa

El cluster no dice la causa. Dice: estas horas se parecen entre sí y son distintas a otras.

  • Si un cluster concentra eventos, puede ser una zona de riesgo.
  • Si un cluster tiene baja recuperación, merece revisión metalúrgica.
  • Si un turno aparece mucho en un cluster, se revisa contexto operacional.

Mensaje final: clustering ayuda a descubrir modos de operación sin decirle al modelo qué buscar. Es una linterna para explorar datos de planta.

← Lección anteriorDescargar datosSiguiente lección →