Comprender la curva ROC

57

Tengo problemas para entender la curva ROC.

¿Hay alguna ventaja / mejora en el área bajo la curva ROC si construyo modelos diferentes de cada subconjunto único del conjunto de entrenamiento y lo uso para generar una probabilidad? Por ejemplo, si tiene valores de , y modelo de acumulación mediante el uso de de los valores 1 al 4 de y los valores 8 y 9 de y construir el modelo utilizando los datos del tren restante. Finalmente, genera probabilidad. Cualquier pensamiento / comentario será muy apreciado.y{a,a,a,a,b,b,b,b}AayyB

Aquí está el código r para una mejor explicación de mi pregunta:

Y    = factor(0,0,0,0,1,1,1,1)
X    = matirx(rnorm(16,8,2))
ind  = c(1,4,8,9)
ind2 = -ind

mod_A    = rpart(Y[ind]~X[ind,])
mod_B    = rpart(Y[-ind]~X[-ind,])
mod_full = rpart(Y~X)

pred = numeric(8)
pred_combine[ind]  = predict(mod_A,type='prob')
pred_combine[-ind] = predict(mod_B,type='prob')
pred_full          = predict(mod_full, type='prob')

Así que mi pregunta es, el área bajo la curva ROC de pred_combinefrente pred_full.

Tay Shin
fuente
3
Un mejor ejemplo haría mucho para mejorar la pregunta.
mpiktas
Tengo entendido que desea aumentar el AUC eligiendo algunas muestras específicas. Si ese es su propósito, creo firmemente que este enfoque de selección de muestra sesgada es completamente incorrecto, al menos si su propósito es encontrar una buena medida para el rendimiento de la clasificación.
rapaio
2
echa un vistazo a la demostración interactiva de ROC
Alleo

Respuestas:

174

No estoy seguro de haber recibido la pregunta, pero como el título pide una explicación de las curvas ROC, lo intentaré.

Las curvas ROC se utilizan para ver qué tan bien su clasificador puede separar ejemplos positivos y negativos e identificar el mejor umbral para separarlos.

Para poder usar la curva ROC, su clasificador debe estar clasificado , es decir, debe ser capaz de clasificar ejemplos de manera que los que tengan un rango más alto sean más propensos a ser positivos. Por ejemplo, la regresión logística genera probabilidades, que es un puntaje que puede usar para clasificar.

Dibujo de curva ROC

Dado un conjunto de datos y un clasificador de clasificación:

  • Ordene los ejemplos de prueba por puntaje de mayor a menor
  • comenzar en(0,0)
  • para cada ejemplo en el orden ordenado x
    • si es positivo, mueva hacia arriba1 / posx1/pos
    • si es negativo, mueva derecha1 / negx1/neg

donde y son las fracciones de ejemplos positivos y negativos respectivamente.negposneg

Esta bonita imagen animada de gif debería ilustrar este proceso más claramente

construyendo la curva

En este gráfico, el eje es una tasa positiva verdadera, y el eje es una tasa positiva falsa. Tenga en cuenta la línea diagonal: esta es la línea de base, que se puede obtener con un clasificador aleatorio. Cuanto más se encuentre nuestra curva ROC por encima de la línea, mejor.xyx

Área bajo ROC

área bajo roc

El área debajo de la curva ROC (sombreada) muestra naturalmente qué tan lejos está la curva de la línea base. Para la línea base es 0.5, y para el clasificador perfecto es 1.

Puede leer más sobre AUC ROC en esta pregunta: ¿Qué significa AUC y qué es?

Seleccionar el mejor umbral

Esbozaré brevemente el proceso de selección del mejor umbral, y se pueden encontrar más detalles en la referencia.

Para seleccionar el mejor umbral, verá cada punto de su curva ROC como un clasificador separado. Este mini-clasificador utiliza la puntuación que obtuvo el punto como límite entre + y - (es decir, clasifica como + todos los puntos por encima del actual)

Dependiendo de la fracción pos / neg en nuestro conjunto de datos, paralela a la línea de base en el caso del 50% / 50%, puede construir líneas de precisión ISO y tomar la que tenga la mejor precisión.

Aquí hay una imagen que ilustra eso y para más detalles nuevamente los invito a la referencia

seleccionando el mejor umbral

Referencia

Alexey Grigorev
fuente
Gracias por el gran comentario! Lamento no haber podido votar por su respuesta, parece que necesito tener más de 15 reputación :(
Tay Shin
Por curiosidad, el tamaño de su paso tendría que depender de la cantidad de etiquetas positivas / negativas producidas por su clasificador ¿correcto? Es decir, en el gif, el tamaño del paso hacia arriba es .1, si tuviera una etiqueta positiva adicional (en lugar de una etiqueta negativa), entonces la "curva" terminaría en 1.1 en el eje vertical (o tal vez me falta algo ?) Entonces, ¿en ese caso el tamaño de su paso debe ser más pequeño?
Kyphos
No, el tamaño del paso depende del número de ejemplos positivos / negativos en el conjunto de datos, no de la precisión del clasificador.
Alexey Grigorev
2
@gung entendió. Alexey: en lugar de ejemplos positivos y negativos, creo que debería ser: verdaderos positivos y falsos positivos. Es posible que pueda ver mi edición de la respuesta, que fue revertida por Gung. gracias
Escachator
3
@AlexeyGrigorev, me encanta la respuesta que das y vota. No estoy seguro si hay dos definiciones ROC. Me estoy refiriendo a la definición de ROC aquí ( en.wikipedia.org/wiki/Receiver_operating_characteristic ), el eje x debe ser una tasa de falsos positivos, que es (# de predicciones para ser positivo, pero debe ser negativo) / (# del total negativo), creo que en la referencia, creo que el eje x no está dibujando una tasa de falsos positivos, que no considera el (# de total negativo)?
Lin Ma