27. Aplicaciones con aprendizaje supervisado
Que problemas de flotacion puedo atacar cuando tengo una variable objetivo clara?
Aplicaciones con aprendizaje supervisado
Usamos regresion y clasificacion para estimar recuperacion, riesgo y probabilidad de evento.
Mapa rapido
| Componente | Uso en clase |
|---|---|
| Excel | Pendiente, regresion y reglas de clasificacion. |
| Python | LinearRegression + LogisticRegression |
| ML / mineria de datos | Prediccion con variable objetivo conocida |
1. Pregunta de planta
Aprendizaje supervisado se usa cuando tengo ejemplos historicos con respuesta conocida: recuperacion medida, evento ocurrido, severidad registrada o KPI final. El modelo aprende la relacion entre variables de entrada y salida.
2. Matematica simple
X son variables de planta. y es lo que quiero estimar.
Regresion: y numerica, por ejemplo recuperacion.
Clasificacion: y categorica, por ejemplo evento si/no.
3. Aplicacion en mineria
Casos: estimar recuperacion, anticipar sobre-espumacion, predecir ley de concentrado, clasificar condicion de riesgo, priorizar turnos con probabilidad alta de desviacion.
4. Excel
=PENDIENTE(recuperacion, flujo_aire)
=INTERSECCION.EJE(recuperacion, flujo_aire)
Clasificacion simple:
=SI(score_riesgo>0.7,1,0)
5. Python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression, LogisticRegression
from sklearn.metrics import mean_absolute_error, classification_report
df = pd.read_excel("flotacion_cobre.xlsx")
features = ["ley_cabeza_cu", "densidad_pulpa", "p80", "flujo_aire", "nivel_celda", "ph", "dosificacion_espumante"]
# Regresion: recuperacion
X = df[features]
y_reg = df["recuperacion_cu"]
X_train, X_test, y_train, y_test = train_test_split(X, y_reg, test_size=0.2, random_state=42)
reg = LinearRegression().fit(X_train, y_train)
pred_reg = reg.predict(X_test)
print("MAE recuperacion:", mean_absolute_error(y_test, pred_reg))
# Clasificacion: evento
y_clf = df["evento_sobre_espumacion"]
X_train, X_test, y_train, y_test = train_test_split(X, y_clf, test_size=0.2, random_state=42, stratify=y_clf)
clf = LogisticRegression(max_iter=1000).fit(X_train, y_train)
pred_clf = clf.predict(X_test)
print(classification_report(y_test, pred_clf))6. Cierre aplicativo
Mensaje final: El aprendizaje supervisado es potente cuando la variable objetivo esta bien definida y el dato historico representa de verdad la operacion que quiero apoyar.
