Curso 2 · Módulo 1 · Aprendizaje supervisado

17. Clasificación de algoritmos

¿Cómo anticipar si una condición pertenece a zona normal o zona de riesgo?

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

Flotación CuExcelPythonMachine Learning

Clasificación de algoritmos

Usamos clasificadores para estimar la probabilidad de sobre-espumación y entender los errores de decisión.

1. Pregunta de planta

La clasificación se usa cuando la respuesta pertenece a una categoría.

Idea central: usamos datos históricos con etiqueta para aprender a clasificar una condición: normal o sobre-espumación.
Entrada X = variables de planta Salida y = evento_sobre_espumacion (0 = no, 1 = sí)

2. Matemática simple

Un clasificador aprende una frontera entre clases.

Clase 0: operación normal Clase 1: evento de sobre-espumación

En regresión logística, el modelo calcula una probabilidad:

P(evento) = función_sigmoide(b0 + b1*x1 + b2*x2 + ...)
Lectura simple: no solo interesa decir sí o no; interesa saber cuánto riesgo estima el modelo.

3. Algoritmos de clasificación

AlgoritmoIdea simpleUso en clase
Regresión logísticaCalcula probabilidad de evento.Modelo base interpretable.
Árbol de decisiónAprende reglas tipo si-entonces.Explicar condiciones de riesgo.
Random ForestCombina muchos árboles.Mejor desempeño, menor interpretabilidad.
SVM / vecinosSeparan clases por distancia o frontera.Comparar enfoques, no iniciar por aquí.

4. Excel: clasificador simple tipo semáforo

Antes de entrenar un modelo, se puede construir una regla transparente.

Regla de riesgo

=SI(Y(J2>80,L2>40,P2>60),"Alto riesgo","Normal")

Comparar contra evento real

Predicción: Alto riesgo / Normal Real: N2 = 1 o 0

Matriz de confusión manual

Verdadero positivo: predijo riesgo y hubo evento Falso positivo: predijo riesgo y no hubo evento Falso negativo: predijo normal y hubo evento Verdadero negativo: predijo normal y no hubo evento
Clave: en eventos raros, la exactitud puede engañar. Importan falsos negativos y falsos positivos.

5. Python: clasificación de sobre-espumación

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix, classification_report, roc_auc_score

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

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

X = df[features]
y = df["evento_sobre_espumacion"]

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42, stratify=y
)

modelo = make_pipeline(StandardScaler(), LogisticRegression(max_iter=1000))
modelo.fit(X_train, y_train)

pred = modelo.predict(X_test)
prob = modelo.predict_proba(X_test)[:, 1]

print(confusion_matrix(y_test, pred))
print(classification_report(y_test, pred))
print("AUC:", roc_auc_score(y_test, prob))

6. Lectura operativa

Un clasificador no debe verse como una orden automática, sino como una alerta de revisión.

  • Probabilidad baja: operación dentro de zona esperada.
  • Probabilidad media: revisar tendencia y contexto.
  • Probabilidad alta: revisar nivel, aire, espumante y condiciones de espuma.

Mensaje final: la clasificación ayuda a anticipar condiciones de riesgo, pero su valor depende de reducir falsos negativos sin llenar la planta de falsas alarmas.

← Lección anteriorDescargar datosSiguiente lección →