28. Aplicaciones con aprendizaje no supervisado
Que puedo descubrir cuando no tengo etiquetas confiables?
Aplicaciones con aprendizaje no supervisado
Usamos clustering, PCA y anomalías para explorar modos de operación y condiciones raras.
Mapa rapido
| Componente | Uso en clase |
|---|---|
| Excel | z-score, distancias y percentiles. |
| Python | KMeans + PCA + IsolationForest |
| ML / mineria de datos | Descubrir estructura sin etiquetas |
1. Pregunta de planta
Muchas plantas no tienen etiquetas confiables para cada problema. Aun asi, los datos pueden revelar grupos, cambios de modo operativo y puntos raros. Eso es aprendizaje no supervisado.
2. Matematica simple
El modelo busca estructura en X sin usar y.
Clustering: agrupa condiciones parecidas.
PCA: resume variables.
Anomalias: marca puntos raros.
3. Aplicacion en mineria
Casos: identificar modos de operacion, separar turnos parecidos, detectar condiciones nuevas, resumir muchas variables de planta en dos componentes, comparar clusters contra recuperacion y eventos.
4. Excel
1. Estandarizar variables con z-score.
2. Calcular distancia a un patron normal.
3. Usar percentiles para marcar condiciones raras.
4. Hacer tabla dinamica por grupo manual o semaforo.
5. Python
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
from sklearn.ensemble import IsolationForest
df = pd.read_excel("flotacion_cobre.xlsx")
features = ["ley_cabeza_cu", "recuperacion_cu", "densidad_pulpa", "p80", "flujo_aire", "nivel_celda", "ph", "dosificacion_espumante", "score_riesgo"]
X_scaled = StandardScaler().fit_transform(df[features])
# Clustering
kmeans = KMeans(n_clusters=3, random_state=42, n_init=10)
df["cluster"] = kmeans.fit_predict(X_scaled)
# PCA
pca = PCA(n_components=2)
pcs = pca.fit_transform(X_scaled)
df["PC1"] = pcs[:, 0]
df["PC2"] = pcs[:, 1]
# Anomalias
iso = IsolationForest(contamination=0.08, random_state=42)
df["anomalia"] = (iso.fit_predict(X_scaled) == -1).astype(int)
print(df.groupby("cluster")[["recuperacion_cu", "score_riesgo", "evento_sobre_espumacion"]].mean())6. Cierre aplicativo
Mensaje final: No supervisado sirve para explorar, ordenar y hacer preguntas mejores. No reemplaza la validacion de planta: la provoca.
