Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Probabilidad y estadística para IA, Unidad 8 — Estadística en evaluación de modelos, 8.2 — Curvas y análisis ·

ROC

ROC: Una herramienta esencial para la evaluación de modelos predictivos

Introducción

En el ámbito de la inteligencia artificial y la ciencia de datos, no hay un análisis más crucial que la evaluación de los modelos preditivos. Uno de los métodos más poderosos y ampliamente utilizados para esta tarea es la Curva ROC (Receiver Operating Characteristic). La ROC curva proporciona una visualización gráfica que muestra la relación entre el verdadero positivo rate (TPR) y el falso positivo rate (FPR) a diferentes umbrales de decisión. En este artículo, exploraremos por qué es importante entender y utilizar adecuadamente la ROC curva en la evaluación de modelos predictivos.

Explicación principal con ejemplos

La ROC curva se genera al graficar el TPR (True Positive Rate) en el eje vertical contra el FPR (False Positive Rate) en el eje horizontal. El TPR mide cuántos positivos reales se identifican correctamente, mientras que el FPR mide cuántos negativos falsos son clasificados como positivos.

Ejemplo de código

Para ilustrar esto con un ejemplo práctico, consideremos una tarea de clasificación binaria donde predicciones del modelo se han convertido en probabilidades (score) utilizando la función predict_proba de Scikit-learn. El siguiente bloque de código muestra cómo generar y visualizar una ROC curva.

import numpy as np
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt

# Supongamos que tenemos las verdaderas etiquetas (y_true) y las predicciones (y_scores)
y_true = [0, 0, 1, 1]
y_scores = [0.1, 0.4, 0.35, 0.8]

# Calcular TPR y FPR
fpr, tpr, thresholds = roc_curve(y_true, y_scores)

# Calcular área bajo la curva ROC (AUC)
roc_auc = auc(fpr, tpr)

# Graficar la ROC curva
plt.figure()
plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], 'k--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('Falso Positivo Rate')
plt.ylabel('Verdadero Positivo Rate')
plt.title('ROC Curva')
plt.legend(loc="lower right")
plt.show()

Errores típicos / trampas

Trampa 1: Confundir TPR con accuracy

Es común confundir el True Positive Rate (TPR) con la Accuracy, especialmente en problemas de clasificación desbalanceados. La Accuracy no es adecuada para mediciones equitativas en problemas donde los positivos y negativos son desiguales.

Trampa 2: Ignorar AUC

El área bajo la curva ROC (AUC) es una medida valiosa que mide el rendimiento promedio del modelo a lo largo de todos los posibles umbrales. Se recomienda siempre evaluar tanto la curva ROC como su AUC.

Trampa 3: Usar la ROC sin contexto

La ROC curva puede ser engañosa si no se entiende el balanceo entre TPR y FPR, especialmente en situaciones donde los costos de falso positivos y falsos negativos son diferentes. Es importante considerar estos costos al interpretar la curva.

Checklist accionable

  1. Revisar la desviación estándar del score: Si las probabilidades están muy dispersas, puede indicar que el modelo no es confiable.
  2. Comparar AUC con otros modelos: Comparar el AUC de tu modelo con los de otros modelos en el mismo contexto para evaluar su rendimiento relativo.
  3. Analizar TPR y FPR a diferentes umbrales: No depender solo del umbral por defecto, sino analizar cómo varía la curva ROC a diferentes umbrales.
  4. Verificar la imparcialidad de los resultados: Si la ROC muestra una tendencia desfavorable en ciertos grupos, es probable que exista un sesgo en el modelo.
  5. Revisar el balanceo entre positivos y negativos: Verificar si el modelo está siendo demasiado conservador o agresivo.

Cierre con "Siguientes pasos"

Siguientes pasos

  1. Explorar más profundamente la teoría de ROC: Comprender mejor cómo funciona la ROC curva y qué significa cada punto en ella.
  2. Practicar con datasets reales: Aplicar lo aprendido en proyectos prácticos para mejorar tu comprensión del modelo.
  3. Analizar casos de estudio avanzados: Examinar cómo otros ingenieros de datos han utilizado la ROC curva en problemas complejos y desafiantes.

La ROC curva es una herramienta valiosa que, al ser utilizada correctamente, puede ayudarte a mejorar significativamente el rendimiento de tus modelos predictivos.

Contacto

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