11. Evaluación de modelos de clasificación

La evaluación de modelos de clasificación es un aspecto crucial en el desarrollo de sistemas de Machine Learning (ML) y Deep Learning (DL). Una vez que un modelo está entrenado para predecir categorías o clases, es necesario determinar qué tan bien realiza esta tarea. Para lograr esto, existen varias métricas y métodos que se pueden utilizar para proporcionar información sobre el desempeño del modelo. En este capítulo, exploraremos métricas de evaluación clave y cómo aplicarlas usando Python.

Métricas de evaluación

Las métricas de evaluación son fundamentales para comprender el rendimiento de un modelo. Algunas de las métricas más comunes incluyen:

  • Precisión: Es la proporción de predicciones correctas en relación al número total de predicciones. Aunque es una métrica intuitiva, la precisión puede resultar engañosa en conjuntos de datos desequilibrados, donde una clase es mucho más frecuente que las demás.
  • Precisión: Se refiere a la proporción de predicciones positivas correctas (verdaderos positivos) en relación con el total de predicciones positivas (verdaderos positivos + falsos positivos). Es una medida importante cuando el coste de los falsos positivos es alto.
  • Recuerdo (Sensibilidad): Es la proporción de verdaderos positivos en relación al número total de casos positivos reales (verdaderos positivos + falsos negativos). Es particularmente útil cuando el costo de los falsos negativos es significativo.
  • F1-Score: combina precisión y recuperación en una sola métrica a través de su media armónica. Es útil cuando queremos lograr un equilibrio entre precisión y recuperación.
  • Curva ROC y AUC: La curva de característica operativa del receptor (ROC) es un gráfico que muestra el rendimiento de un modelo de clasificación en todos los umbrales de clasificación. El área bajo la curva ROC (AUC) proporciona una medida agregada del rendimiento en todos los umbrales de clasificación.

Matriz de confusión

Una herramienta fundamental para evaluar modelos de clasificación es la matriz de confusión. Presenta una tabla que compara las predicciones del modelo (en las columnas) con las etiquetas verdaderas (en las filas). La matriz se divide en cuatro cuadrantes: verdaderos positivos (TP), falsos positivos (FP), verdaderos negativos (TN) y falsos negativos (FN).

| | Pronóstico Positivo | Pronóstico Negativo |
|------------|----------------------|---------------- ---|
| Clase positiva | Verdadero Positivo (TP) | Falso Negativo (FN) |
| Clase negativa | Falso Positivo (FP) | Verdadero Negativo (TN) |

Basándonos en la matriz de confusión, podemos calcular todas las métricas mencionadas anteriormente.

Implementación en Python

Python, con la ayuda de bibliotecas como scikit-learn, proporciona potentes herramientas para evaluar modelos de clasificación. A continuación se muestra un ejemplo de cómo calcular métricas de evaluación utilizando esta biblioteca:


Desde sklearn.metrics importe el informe_clasificación, la matriz_confusión, la puntuación_precisión, la puntuación_roc_auc_score

# Supongamos que y_true son las etiquetas verdaderas y y_pred son las predicciones del modelo.
y_verdadero = [...]
y_pred = [...]

# Calculando la matriz de confusión
conf_matrix = confusión_matrix(y_true, y_pred)
imprimir(conf_matriz)

# Calculando la precisión
precisión = puntuación_precisión(y_true, y_pred)
print(f"Precisión: {precisión}")

# Generando un informe de calificación
informe = informe_clasificación(y_true, y_pred)
Imprimir reporte)

# Calculando el AUC
auc = roc_auc_score(y_true, y_pred)
imprimir(f"AUC: {auc}")

Es importante tener en cuenta que para calcular el AUC, las etiquetas y predicciones verdaderas deben binarizarse cuando se trata de un problema de clasificación de clases múltiples. Además, la función roc_auc_score puede recibir probabilidades de predicción en lugar de etiquetas predichas, lo cual es común en muchos modelos de clasificación.

Consideraciones adicionales

Al evaluar modelos de clasificación, es importante considerar el contexto del problema. Por ejemplo, en aplicaciones médicas, un alto nivel de recuerdo puede ser más deseable que una alta precisión, ya que no se quieren perder posibles casos de enfermedad. Por otro lado, en los sistemas de detección de fraude, una alta precisión puede ser más importante para evitar falsas alarmas que puedan molestar a los usuarios.

Además, es fundamental validar el modelo en un conjunto de datos independiente del utilizado para el entrenamiento, conocido como conjunto de prueba. Esto ayuda a garantizar que el modelo pueda generalizarse bien a datos nunca antes vistos.

Finalmente, la evaluación del modelo no se limita solo a métricas cuantitativas. La interpretabilidad del modelo y el análisis de errores también son aspectos importantes a considerar. Comprender dónde y por qué el modelo comete errores puede proporcionar información valiosa parapara futuras mejoras.

En resumen, evaluar modelos de clasificación es un proceso multifacético que va más allá del cálculo de métricas. Requiere una comprensión profunda del problema en cuestión, el modelo y las implicaciones de las predicciones realizadas.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre la evaluación de modelos de clasificación en Machine Learning (ML) y Deep Learning (DL) es CORRECTA?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Aprendizaje conjunto: embolsado, impulso y bosque aleatorio

Siguiente página del libro electrónico gratuito:

40Aprendizaje conjunto: embolsado, impulso y bosque aleatorio

4 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.