Clasificación

Eval

Clasificación

まとめ
  • Resumir las métricas clave empleadas en tareas de clasificación binaria, multiclase y multietiqueta.
  • Comparar métricas basadas en la matriz de confusión, métricas de umbral/ranking y métricas de calibración de probabilidades.
  • Explicar cómo construir un conjunto de métricas alineado con los objetivos del negocio y cómo reportarlo.

Capítulo 3 #

Visión general de las métricas de clasificación #

Evaluar un clasificador implica considerar varios ángulos: equilibrio de clases, estrategia de umbrales, fiabilidad de las probabilidades y calidad del ranking superior. Este capítulo agrupa las métricas representativas en esos bloques y aporta pautas sobre cuándo dar prioridad a cada uno.


Categorías de métricas #

1. Basadas en la matriz de confusión #

  • Accuracy (Exactitud): tasa global de aciertos; puede ser engañosa con clases desbalanceadas.
  • Precisión / Recall / F1 (Precisión y recall, F1): elige según el coste relativo de falsos positivos y falsos negativos.
  • Especificidad / Sensibilidad (Sensibilidad y especificidad): críticas en ámbitos como el diagnóstico médico.
  • Promedios macro / micro / ponderado (Estrategias de promediado): agregan métricas por clase en multiclase.

2. Umbral y ranking #

  • Curva Precisión-Recall / PR-AUC (Precisión-Recall): destaca el rendimiento cuando la clase positiva es escasa.
  • Curva ROC / ROC-AUC (ROC-AUC): mide la separabilidad a lo largo de todos los umbrales.
  • Top-k Accuracy / Hit Rate (Top-k Accuracy, Hit Rate): útiles cuando sólo se muestran las mejores recomendaciones o resultados de búsqueda.

3. Calibración de probabilidades #

  • Log Loss (Pérdida logarítmica): premia probabilidades bien calibradas.
  • Brier Score (Puntaje Brier): combinado con curvas de fiabilidad para evaluar la calidad de la calibración.
  • Curvas de calibración: comparan probabilidad predicha frente a frecuencia observada.

4. Métricas auxiliares para desbalance #


Cómo cambia la métrica con el umbral #

import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import precision_score, recall_score, f1_score
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

X, y = make_classification(
    n_samples=2000,
    n_features=12,
    n_informative=4,
    weights=[0.85, 0.15],
    random_state=42,
)

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

scaler = StandardScaler()
model = LogisticRegression(max_iter=2000)
model.fit(scaler.fit_transform(X_train), y_train)

prob = model.predict_proba(scaler.transform(X_test))[:, 1]
thresholds = np.linspace(0.05, 0.95, 19)

precision, recall, f1 = [], [], []
for t in thresholds:
    y_pred = (prob >= t).astype(int)
    precision.append(precision_score(y_test, y_pred, zero_division=0))
    recall.append(recall_score(y_test, y_pred, zero_division=0))
    f1.append(f1_score(y_test, y_pred, zero_division=0))

fig, ax = plt.subplots(figsize=(6.8, 4))
ax.plot(thresholds, precision, label="Precisión", color="#2563eb")
ax.plot(thresholds, recall, label="Recall", color="#dc2626")
ax.plot(thresholds, f1, label="F1", color="#0d9488")
ax.set_xlabel("Umbral")
ax.set_ylabel("Puntuación")
ax.set_title("Impacto del umbral en las métricas de clasificación")
ax.set_ylim(0, 1.05)
ax.grid(alpha=0.3)
ax.legend()
plt.tight_layout()
Precisión, recall y F1 según el umbral

Reducir el umbral aumenta el recall pero disminuye la precisión. F1 alcanza su máximo cerca del punto de equilibrio y suele usarse para elegir el umbral operativo.


Recomendaciones para informar y operar #

  1. Incluye siempre la matriz de confusión
    Permite ver los patrones de error por clase y resaltar las clases críticas.
  2. Justifica el umbral elegido
    Usa curvas PR/ROC o un análisis de costes para explicar el punto de operación.
  3. Verifica la calibración de probabilidades
    Si las puntuaciones alimentan precios o asignación de recursos, revisa el Brier Score y las curvas de calibración.
  4. Controla el efecto del desbalance
    Contrasta Balanced Accuracy y MCC junto con Accuracy para evitar interpretaciones erróneas.
  5. Monitorea el drift tras el despliegue
    Vigila la evolución de Precisión/Recall, PR-AUC y ROC-AUC y reajusta el umbral cuando sea necesario.

Referencia rápida #

PerspectivaMétricas representativasPáginas relacionadasNotas
Precisión globalAccuracy / Balanced AccuracyAccuracy / Balanced AccuracyReporta ambas con clases desbalanceadas
Falsos positivos vs. falsos negativosPrecision / Recall / FβPrecisión-Recall / F1Combina con análisis de umbrales
Calidad del rankingPR-AUC / ROC-AUC / Top-kCurva PR / ROC-AUC / Top-k AccuracyOrientado a tareas con desbalance o recomendación
CalibraciónLog Loss / Brier ScoreLog Loss / Brier ScoreNecesario cuando las probabilidades se usan en decisiones
RobustezMCC / κ de CohenMCC / κ de CohenEstables frente al desbalance

Lista de verificación #

  • ¿Se combinaron métricas que reflejen el desbalance?
  • ¿Se compartió la justificación del umbral elegido (PR/ROC o análisis de coste)?
  • ¿Se verificó la calibración de probabilidades antes de usar las puntuaciones en producción?
  • ¿Se confirmó que los datos de evaluación y producción comparten distribución similar?
  • ¿Se fijaron métricas base coherentes para futuras actualizaciones del modelo?