4 votos

dibujar la curva roc en un ejemplo de 10 puntuaciones de probabilidad

Estoy estudiando aprendizaje automático y encontré una pregunta de ejemplo en el libro que realmente me confundió.

Q:

Un clasificador con puntuación se evalúa en un conjunto de prueba de 10 ejemplos dando como resultado las siguientes puntuaciones de probabilidad:

           0.9, 0.8, 0.7, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1

con verdaderas clases:

           1     1    0    1    1    0    1    1    0    0

La respuesta para la curva ROC es ¿Podría alguien darme algunas pistas sobre cómo dibujar esto? Estoy muy confundido sobre por qué la curva gire a la derecha cuando el aumento tpr a aproximadamente 0,3 y 0,7. Gracias.

0voto

Eric Puntos 163

Crear conjunto de datos de etiqueta y puntuación reales. Ordenar el conjunto de datos por puntuación decreciente. Para cada fila, hacer lo siguiente (tratar como pseudocódigo aproximado):

# calculate these
total.class.1.seen = # number of class-1 cases >= row.score
seen.cases = # number of cases seen till now.
total.class.1 = # total class 1 cases in data
total.class.0 = # total class 0 cases in data.

TPR = total.class.1.seen/total.class.1
FPR = (seen.cases - total.class.1.seen)/total.class.0

Ahora traza estos valores de TPR y FPR. Esencialmente lo que estás haciendo en cada fila, es decir que todo lo que tiene una puntuación >= esta puntuación se clasificaría como clase-1.

El código anterior no funciona bien cuando tienes puntuaciones no únicas (Como lo tienes para 0.7 aquí). Piense en cómo desea manejar estos casos. *Sugerencia: para todas las puntuaciones únicas, el gráfico sería una secuencia de segmentos de líneas verticales u horizontales, cuando no son únicas, se obtienen segmentos de líneas inclinadas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X