S29L02 – ROC, AUC – Evaluando el mejor modelo

Evaluando Modelos de Aprendizaje Automático con Curvas ROC y AUC: Una Guía Integral

En el ámbito del aprendizaje automático, seleccionar el modelo adecuado para tu conjunto de datos es crucial para lograr predicciones precisas y confiables. Una de las maneras más efectivas de evaluar y comparar modelos es a través de la Curva Característica de Operación del Receptor (ROC) y el Área Bajo la Curva (AUC). Esta guía profundiza en la comprensión de las curvas ROC, el cálculo del AUC y el aprovechamiento de estas métricas para elegir el modelo con mejor desempeño para tus tareas de clasificación binaria. Acompañaremos un ejemplo práctico usando un Jupyter Notebook, demostrando cómo implementar estos conceptos utilizando diversos algoritmos de aprendizaje automático.


Tabla de Contenidos

  1. Introducción a la Curva ROC y al AUC
  2. ¿Por Qué AUC Mejor que Precisión?
  3. Descripción del Conjunto de Datos
  4. Preprocesamiento de Datos
  5. Entrenamiento y Evaluación del Modelo
    1. K-Vecinos Más Cercanos (KNN)
    2. Regresión Logística
    3. Bayesiano Naive Gaussiano
    4. Máquina de Vectores de Soporte (SVM)
    5. Árbol de Decisión
    6. Bosque Aleatorio
    7. AdaBoost
    8. XGBoost
  6. Elección del Mejor Modelo
  7. Conclusión
  8. Recursos

Introducción a la Curva ROC y al AUC

¿Qué es una Curva ROC?

Una Curva Característica de Operación del Receptor (ROC) es una representación gráfica que ilustra la capacidad diagnóstica de un sistema de clasificación binaria a medida que varía su umbral de discriminación. La curva ROC traza dos parámetros:

  • Tasa de Verdaderos Positivos (TPR): También conocida como sensibilidad o recall, mide la proporción de positivos reales identificados correctamente.
  • Tasa de Falsos Positivos (FPR): Mide la proporción de negativos reales que fueron identificados incorrectamente como positivos.

La curva ROC permite visualizar el compromiso entre sensibilidad y especificidad (1 – FPR) a través de diferentes configuraciones de umbral.

Comprendiendo el AUC

Área Bajo la Curva (AUC) cuantifica la capacidad general del modelo para discriminar entre clases positivas y negativas. El valor de AUC varía de 0 a 1:

  • AUC = 1: Clasificador perfecto.
  • AUC = 0.5: Sin discriminación (equivalente a adivinación aleatoria).
  • AUC < 0.5: Predictivo inverso (peor que aleatorio).

Un AUC más alto indica un modelo con mejor desempeño.


¿Por Qué AUC Mejor que Precisión?

Mientras que la precisión mide la proporción de predicciones correctas sobre todas las predicciones realizadas, puede ser engañosa, especialmente en casos de desbalance de clases. Por ejemplo, si el 95% de los datos pertenece a una clase, un modelo que solo predice esa clase logrará una precisión del 95% pero no capturará la clase minoritaria.

AUC, por otro lado, proporciona una evaluación más matizada al considerar el desempeño del modelo a través de todos los umbrales de clasificación, lo que lo convierte en una métrica más confiable para conjuntos de datos desequilibrados.


Descripción del Conjunto de Datos

Para nuestro análisis, utilizaremos el Conjunto de Datos de Clima de Kaggle. Este conjunto de datos contiene diversos atributos relacionados con el clima registrados diariamente en diferentes lugares de Australia.

Objetivo: Predecir si lloverá mañana (RainTomorrow) basándose en las condiciones climáticas de hoy.

Tipo: Clasificación Binaria (Yes/No).


Preprocesamiento de Datos

Un preprocesamiento efectivo de datos es la piedra angular para construir modelos robustos de aprendizaje automático. Aquí hay un desglose paso a paso:

1. Importación de Bibliotecas y Datos

2. Separación de Características y Objetivo

3. Manejo de Datos Faltantes

a. Características Numéricas

b. Características Categóricas

4. Codificación de Variables Categóricas

a. Codificación Label para el Objetivo

b. Codificación de Características

5. Selección de Características

Para reducir la complejidad del modelo y mejorar el desempeño, seleccionaremos las 10 mejores características usando la prueba de Chi-Cuadrado (Chi2).

6. División del Conjunto de Datos

7. Escalado de Características

Estandarizar las características asegura que cada una contribuya por igual al resultado.


Entrenamiento y Evaluación del Modelo

Entrenaremos varios modelos de clasificación y evaluaremos su desempeño utilizando tanto la Precisión como el AUC.

K-Vecinos Más Cercanos (KNN)

Salida:

Curva ROC de KNN

Regresión Logística

Salida:

Curva ROC de Regresión Logística

Nota: Si encuentras una advertencia de convergencia, considera aumentar max_iter o estandarizar tus datos.

Bayesiano Naive Gaussiano

Salida:

Curva ROC de Bayesiano Naive Gaussiano

Máquina de Vectores de Soporte (SVM)

Salida:

Curva ROC de SVM

Árbol de Decisión

Salida:

Curva ROC de Árbol de Decisión

Bosque Aleatorio

Salida:

Curva ROC de Bosque Aleatorio

AdaBoost

Salida:

Curva ROC de AdaBoost

XGBoost

Salida:

Curva ROC de XGBoost

Elección del Mejor Modelo

Después de evaluar todos los modelos, observamos las siguientes precisiones:

Modelo Precisión AUC
K-Vecinos Más Cercanos 0.82 0.80
Regresión Logística 0.84 0.86
Bayesiano Naive Gaussiano 0.81 0.81
SVM 0.84 0.86
Árbol de Decisión 0.78 0.89
Bosque Aleatorio 0.84 0.85
AdaBoost 0.84 0.86
XGBoost 0.85 0.87

Observaciones Clave:

  1. XGBoost emerge como el de mejor desempeño con la mayor precisión (85%) y un AUC sólido (0.87).
  2. Regresión Logística, SVM y AdaBoost también demuestran un desempeño encomiable con precisiones alrededor del 84% y AUC de 0.86.
  3. Árbol de Decisión muestra la menor precisión (78%) pero tiene un AUC relativamente alto (0.89), indicando potencial para distinguir clases a pesar de una menor precisión en la predicción.

Conclusión: Mientras que la precisión proporciona una métrica directa, el AUC ofrece una visión más profunda del desempeño del modelo a través de diversos umbrales. En este escenario, XGBoost destaca como el modelo más confiable, equilibrando una alta precisión y una fuerte capacidad discriminativa.


Conclusión

Evaluar modelos de aprendizaje automático requiere un enfoque multifacético. Basarse únicamente en la precisión puede ser engañoso, especialmente en conjuntos de datos con desequilibrios de clases. Las curvas ROC y el AUC proporcionan una evaluación más completa del desempeño de un modelo, destacando su capacidad para distinguir entre clases de manera efectiva.

En esta guía, exploramos cómo preprocesar datos, entrenar múltiples modelos de clasificación y evaluarlos utilizando curvas ROC y AUC. La implementación práctica usando un Jupyter Notebook mostró las fortalezas de cada modelo, demostrando finalmente que XGBoost fue la opción superior para predecir lluvias basándose en el conjunto de datos proporcionado.


Recursos


Al comprender y utilizar las curvas ROC y el AUC, los científicos de datos y los profesionales de aprendizaje automático pueden tomar decisiones más informadas al seleccionar modelos, asegurando un mayor desempeño y confiabilidad en sus tareas predictivas.

Comparte tu aprecio