Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Scikit-learn desde cero, Unidad 7 — Evaluación de modelos con scikit-learn, 7.1 — Métricas integradas ·

Métricas de clasificación

Métricas de clasificación

Introducción

En machine learning, la evaluación de modelos es crucial para asegurar que nuestros algoritmos estén funcionando como esperamos. Las métricas de clasificación son herramientas fundamentales en este proceso, permitiéndonos medir el rendimiento de los modelos de clasificación. Sin embargo, elegir y utilizar estas métricas correctamente puede ser un desafío. Este artículo cubre las principales métricas de clasificación disponibles en scikit-learn, proporciona ejemplos prácticos y alertas sobre errores comunes.

Explicación principal con ejemplos

Scikit-learn ofrece una variedad de métricas para evaluar modelos de clasificación. Algunas de las más utilizadas son:

1. Precisión (Precision)

La precisión mide la proporción de verdaderos positivos en los que se predice correctamente.

from sklearn.metrics import precision_score

# Ejemplo de uso
y_true = [0, 1, 1, 0, 1]
y_pred = [0, 1, 0, 0, 1]

precision = precision_score(y_true, y_pred)
print(f"Precisión: {precision}")

2. Recall (Recall o Sensibilidad)

El recall mide la proporción de verdaderos positivos que se predice correctamente.

from sklearn.metrics import recall_score

# Ejemplo de uso
recall = recall_score(y_true, y_pred)
print(f"Recall: {recall}")

3. F1-score (F1-Score)

El F1-score es una combinación aritmética de precisión y recall.

from sklearn.metrics import f1_score

f1 = f1_score(y_true, y_pred)
print(f"F1-score: {f1}")

4. Accuracy (Precisión general)

La precisión general mide el porcentaje total de predicciones correctas.

from sklearn.metrics import accuracy_score

accuracy = accuracy_score(y_true, y_pred)
print(f"Accuracy: {accuracy}")

5. Matriz de confusión (Confusion Matrix)

Una matriz de confusión proporciona una visión detallada del rendimiento del modelo en términos de verdaderos positivos, falsos positivos, verdaderos negativos y falsos negativos.

from sklearn.metrics import confusion_matrix

cm = confusion_matrix(y_true, y_pred)
print(f"Matriz de confusión:\n{cm}")

6. AUC-ROC (Área bajo la curva ROC)

El AUC-ROC mide el área bajo la curva de receiver operating characteristic (ROC), lo que refleja la capacidad del modelo para distinguir entre clases.

from sklearn.metrics import roc_auc_score

# Ejemplo de uso con una probabilidad
y_prob = [0.1, 0.4, 0.35, 0.8]
auc_roc = roc_auc_score(y_true, y_prob)
print(f"AUC-ROC: {auc_roc}")

Errores típicos / trampas

Error 1: Ignorar la distribución de clases

Las métricas como precisión y recall pueden dar resultados sesgados si las clases no están balanceadas. En tales casos, es mejor usar AUC-ROC.

Error 2: Usar accuracy en problemas imbalanced

En problemas con un desbalance de clases, el accuracy puede ser engañoso. Mejorar su rendimiento requiere considerar otras métricas como recall y F1-score.

Error 3: No analizar la matriz de confusión

La matriz de confusión proporciona una vista detallada del rendimiento del modelo. Ignorarla puede llevar a interpretaciones erróneas sobre el desempeño real del modelo.

Checklist accionable

  1. Analiza las clases balanceadas antes de usar métricas como precisión y recall.
  2. Verifica la matriz de confusión para obtener una visión completa del rendimiento.
  3. Elije la métrica adecuada basada en el desbalance de datos (por ejemplo, AUC-ROC para imbalanced data).
  4. Evalúa múltiples métricas para obtener un perfil completo del rendimiento del modelo.
  5. Utiliza validación cruzada para asegurar que las métricas estén generalizables.

Cierre con "Siguientes pasos"

Siguientes pasos

  • Revisión de la documentación oficial: Explora más profundamente la documentación de scikit-learn sobre métricas.
  • Práctica: Aplica estas métricas en proyectos reales para mejorar tu entendimiento y habilidades.
  • Aprende más sobre validación cruzada: Este es un método fundamental para evaluar el rendimiento del modelo.

Siguiendo estos pasos, podrás mejorar significativamente la evaluación de tus modelos de clasificación y asegurar que estén optimizados para su tarea específica.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).