[DATA SCIENCE][R]Comprendiendo las Curvas ROC y el Análisis de Rendimiento de Modelos de Clasificación
Comprendiendo las Curvas ROC y el Análisis de Rendimiento de Modelos de Clasificación
El análisis de curvas ROC (Receiver Operating Characteristic) es esencial para evaluar el rendimiento de modelos de clasificación binaria. Este artículo desglosa el proceso, explicando desde la recolección de datos hasta la interpretación de las métricas. A continuación, presentamos una
Paso 1: Preparación de los Datos
Primero, imaginemos que tenemos un conjunto de datos con predicciones de probabilidades y las clases reales de los resultados. Supongamos que trabajamos con la predicción de diabetes en pacientes:
Paciente | Nivel de Glucosa | Presión Arterial | Clase (Diabetes) |
---|---|---|---|
A | 150 | 85 | 1 |
B | 120 | 75 | 0 |
C | 180 | 95 | 1 |
D | 110 | 80 | 0 |
Clases: Las clases representan las categorías a predecir. Aquí, 1
indica presencia de diabetes y 0
ausencia.
Probabilidades: Son las estimaciones que el modelo genera para indicar la probabilidad de que una observación pertenezca a una determinada clase, entre 0 y 1.
Paso 2: Entrenamiento del Modelo
En la Edad Media, los curanderos harían observaciones y desarrollarían reglas basadas en patrones:
- Recolección de Datos:
- Observan a los pacientes y anotan sus síntomas y resultados.
- Por ejemplo: "Paciente A: Glucosa 150, Presión 85, Diabetes (Sí)".
- Creación del Modelo (Reglas de Decisión):
- Identifican patrones: "Si glucosa > 130 y presión > 80, entonces alta probabilidad de diabetes".
- Entrenamiento del Modelo:
- Ajustan y refinan las reglas basadas en nuevas observaciones.
- Evaluación del Modelo:
- Comparan las predicciones con los resultados reales para ajustar las reglas.
Modernamente, esto se hace con algoritmos como la regresión logística, que ajustan parámetros para minimizar errores en predicciones.
Paso 3: Predicción y Probabilidades
Usamos el modelo entrenado para generar probabilidades de que nuevos pacientes tengan diabetes:
Paciente | Probabilidad de Tener Diabetes |
---|---|
E | 0.85 |
F | 0.30 |
G | 0.60 |
H | 0.40 |
Paso 4: Umbral de Decisión
Decidimos un umbral para clasificar si un paciente tiene diabetes. Si usamos un umbral de 0.5:
- Paciente E: Probabilidad 0.85 > 0.5 → Clase 1 (Diabetes)
- Paciente F: Probabilidad 0.30 < 0.5 → Clase 0 (No Diabetes)
Código en R para Visualización de la Curva ROC
En R, este proceso se automatiza con la función prediction
del paquete ROCR
. A continuación, mostramos cómo hacerlo:
# Cargar el dataset
roc_data1 <- read.csv("../data/tema3/roc-example-1.csv")
valores_verdaderos1 <- roc_data1$class
predicciones1 <- roc_data1$prob
# Crear el objeto de predicción
library(ROCR)
pred1 <- prediction(predicciones1, valores_verdaderos1)
# Evaluar el desempeño del modelo
perf1 <- performance(pred1, measure = "tpr", x.measure = "fpr")
# Graficar la Curva ROC
plot(perf1, main = "Curva ROC", col = "#1c61b6", lwd = 2)
abline(a = 0, b = 1, lty = 2, col = "gray")
# Generar los cortes y las tasas correspondientes
prob.cuts.1 <- data.frame(cut = perf1@alpha.values[[1]],
fpr = perf1@x.values[[1]],
tpr = perf1@y.values[[1]])
# Mostrar las primeras filas del data.frame
head(prob.cuts.1)
Paso 5: Construcción Manual de la Curva ROC
Imaginemos que tenemos las siguientes predicciones y clases reales:
Predicción | Clase |
---|---|
0.9 | 1 |
0.9 | 1 |
0.8 | 1 |
0.8 | 1 |
0.7 | 1 |
0.6 | 0 |
0.4 | 0 |
0.3 | 0 |
0.2 | 0 |
0.1 | 0 |
Ordenamos las predicciones y aplicamos cada una como umbral:
Métricas en Cada Umbral
Umbral 0.9:
- TP: 2
- FP: 0
- TN: 5
- FN: 3
- TPR: 0.4
- FPR: 0
Repetimos esto para cada umbral:
Umbral | TPR | FPR |
---|---|---|
0.9 | 0.4 | 0 |
0.8 | 0.8 | 0 |
0.7 | 1.0 | 0 |
0.6 | 1.0 | 0.25 |
0.4 | 1.0 | 0.5 |
0.3 | 1.0 | 0.75 |
0.2 | 1.0 | 1.0 |
0.1 | 1.0 | 1.0 |
Visualización de la Curva ROC
Para visualizar la curva ROC, podemos trazar los valores de TPR (True Positive Rate) en el eje Y y FPR (False Positive Rate) en el eje X. Esto nos permitirá observar el rendimiento de nuestro modelo a través de diferentes umbrales.
La curva ROC nos muestra cómo la sensibilidad y la especificidad de nuestro modelo varían a medida que cambiamos el umbral de decisión. Un buen modelo tendrá una curva ROC que se aproxima lo más posible al punto superior izquierdo (donde TPR es 1 y FPR es 0).
Conclusión
Al entender cómo se calculan las métricas intermedias y se construyen las curvas ROC, podemos evaluar de manera efectiva el rendimiento de nuestros modelos de clasificación. Este proceso es crucial para mejorar la precisión y efectividad de las predicciones en aplicaciones del mundo real, como el diagnóstico médico.
Comentarios
Publicar un comentario