3 votos

¿Deberíamos utilizar el AUC como indicador de sobreajuste cuando el conjunto de datos está muy desequilibrado?

En mi problema, hay 2 etiquetas de clase, pero una de ellas sólo representa el 1% de los datos totales. Primero dividí mi conjunto de datos por train_test_split de tal manera que sólo el 10% es el conjunto de prueba, luego realicé una validación cruzada de 10 pliegues y a continuación se muestra el AUC en el conjunto de validación para 10 pliegues:

0.8339720951796847
0.8339720951796847
0.8340767220106542
0.8331529270822466
0.8293208019913448
0.8474731942921908
0.8545871857725601
0.8235138776279672

que parece tener variaciones muy bajas entre cada pliegue. Sin embargo, en el conjunto de prueba AUC=0,543546.

La situación es aún peor si utilizo StratifiedShuffleSplit: mientras que el AUC medio para la validación cruzada sigue siendo de alrededor de 0,85, el AUC en el conjunto de prueba es de 0,2.

Mi pregunta es: ¿Podemos utilizar el AUC como indicador de sobreajuste cuando el conjunto de datos está muy desequilibrado? Dado que el conjunto de pruebas ahora es muy pequeño y no se debe esperar que el AUC sea tan preciso como cuando se realiza una validación cruzada.

1voto

user119039 Puntos 6

El AUC parece ser adecuado para clases desequilibradas, aunque la curva precisión-recuerdo es mejor, como se explica, por ejemplo, aquí AUC y desequilibrio de clases en el conjunto de datos de entrenamiento/prueba

Sin embargo, DEBE utilizar StratifiedShuffleSplit (o cualquier otro muestreo estratificado que garantice que las divisiones preservan las distribuciones de clase) con clases desequilibradas, de lo contrario corre el riesgo de obtener conjuntos de prueba realmente malos (omitiendo la clase minoritaria y sobreestimando el rendimiento de su modelo). Esto se refleja en sus resultados: sin el muestreo estratificado, el AUC de la prueba es mejor, 0,54 frente a 0,2 con StratifiedShuffleSplit. Estoy bastante seguro de que la verdadera métrica de rendimiento de ese modelo es 0,2, no 0,54.

0voto

bmegli Puntos 11

Una forma de comprobar si se está sobreajustando con AUC es aplicarlo directamente a los datos de entrenamiento y compararlos con los de validación. Si hay una gran diferencia (con un AUC de entrenamiento mucho mejor, lo que significa que conoce los datos de entrenamiento "demasiado"), significa que está sobreajustando.

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