Análisis profundo de métricas de clasificación
Matriz de confusión, precisión, exhaustividad, F1, ROC-AUC y curva PR: elección de la métrica adecuada.
Análisis profundo de métricas de clasificación es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
La exactitud no es suficiente
La exactitud es la fracción de predicciones correctas, pero puede inducir a error con datos desequilibrados. Un modelo que predice únicamente la clase mayoritaria puede alcanzar un 99 % y, aun así, ser inútil para la clase minoritaria.
La matriz de confusión
La matriz de confusión divide las predicciones en verdaderos positivos, falsos positivos, verdaderos negativos y falsos negativos. Es la base de todas las demás métricas.
from sklearn.metrics import confusion_matrix
y_true = [0, 1, 1, 0, 1, 0]
y_pred = [0, 1, 0, 0, 1, 1]
print(confusion_matrix(y_true, y_pred))
# rows = actual, columns = predictedPrecisión
Precisión = TP / (TP + FP). De todos los elementos predichos como positivos, ¿cuántos lo son realmente? Una precisión alta implica pocas falsas alarmas. Es importante cuando los falsos positivos tienen un costo elevado (por ejemplo, en los filtros de spam).
from sklearn.metrics import precision_score
print(precision_score(y_true, y_pred))Recall
Recall = TP / (TP + FN). De todos los positivos reales, ¿cuántos se detectan? Un recall alto implica pocos casos omitidos. Es importante cuando los falsos negativos tienen un costo elevado (por ejemplo, en la detección de enfermedades).
from sklearn.metrics import recall_score
print(recall_score(y_true, y_pred))Puntuación F1
La puntuación F1 es la media armónica de la precisión y el recall: 2 * P * R / (P + R). Equilibra ambos y resulta útil cuando se necesita un único valor con datos desequilibrados.
from sklearn.metrics import f1_score, classification_report
print(f1_score(y_true, y_pred))
print(classification_report(y_true, y_pred))Curva ROC y AUC
La curva ROC representa la tasa de verdaderos positivos frente a la tasa de falsos positivos para distintos umbrales. roc_auc_score la resume: 1.0 es perfecto y 0.5 equivale a una predicción aleatoria.
from sklearn.metrics import roc_auc_score
# needs probability scores, not hard labels
proba = model.predict_proba(Xte)[:, 1]
print(roc_auc_score(yte, proba))Curva de precisión y recall
La curva PR representa la precisión frente al recall para distintos umbrales. Es más informativa que la ROC cuando las clases están muy desequilibradas, porque se centra en la clase positiva.
from sklearn.metrics import precision_recall_curve
prec, rec, thresh = precision_recall_curve(yte, proba)
# plot rec (x) vs prec (y) to see the tradeoffPrecisión media
average_precision_score resume la curva PR en un único valor (el área bajo la curva PR). Es la métrica de resumen preferida para la clasificación binaria desequilibrada.
from sklearn.metrics import average_precision_score
print(average_precision_score(yte, proba))ROC AUC frente a precisión media
ROC AUC puede parecer demasiado optimista con datos desequilibrados porque predominan los verdaderos negativos. La precisión media ignora los verdaderos negativos y refleja de forma más honesta el rendimiento con la clase positiva minoritaria.
Elección de la métrica adecuada
Utilice F1 o precisión media para problemas desequilibrados. Utilice ROC AUC para evaluar la calidad del ordenamiento en datos equilibrados. Elija precisión cuando las falsas alarmas sean perjudiciales y recall cuando sean perjudiciales los casos omitidos. Indique siempre su prioridad antes de elegir.
Ajuste del umbral
La mayoría de las métricas dependen del umbral de decisión (predeterminado: 0.5). Al mover el umbral, intercambia precisión por recall. Utilice la curva PR para elegir un umbral que cumpla sus requisitos de negocio.
import numpy as np
# pick threshold for at least 0.9 precision
idx = np.argmax(prec >= 0.9)
chosen = thresh[idx]
preds = (proba >= chosen).astype(int)Comprobación rápida
Ponga a prueba su comprensión de las métricas.
Resumen
Resumen: Comience con confusion_matrix. La precisión penaliza las falsas alarmas, el recall penaliza los casos omitidos y la F1 equilibra ambos. roc_auc_score mide la calidad del ordenamiento; average_precision_score y la curva PR son mejores para datos desequilibrados. Ajuste el umbral para adaptarlo a sus prioridades.
Preguntas frecuentes
¿La lección «Análisis profundo de métricas de clasificación» es gratis?
Sí — el texto completo de «Análisis profundo de métricas de clasificación» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Análisis profundo de métricas de clasificación»?
Matriz de confusión, precisión, exhaustividad, F1, ROC-AUC y curva PR: elección de la métrica adecuada. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Análisis profundo de métricas de clasificación»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Estrategias de validación cruzada
- Análisis profundo de métricas de clasificación
- Búsqueda en rejilla y búsqueda aleatoria
- Optimización bayesiana con Optuna