Recientemente completé una competencia de Kaggle en la que se utilizó la puntuación roc auc según los requisitos de la competencia. Antes de este proyecto, normalmente usaba la puntuación f1 como la métrica para medir el rendimiento del modelo. En el futuro, me pregunto cómo debo elegir entre estas dos métricas. ¿Cuándo usar cuál y cuáles son sus respectivas ventajas y desventajas?
Por cierto, leí el artículo aquí ¿Cuáles son las diferencias entre AUC y F1-score? , pero no me dice cuándo usar cuál.
¡Gracias de antemano por cualquier ayuda!
fuente
Fórmula de cálculo:
ROC / AUC es el mismo criterio y la curva PR (Precision-Recall) (F1-score, Precision, Recall) también es el mismo criterio.
Los datos reales tenderán a tener un desequilibrio entre las muestras positivas y negativas. Este desequilibrio tiene un gran efecto en PR pero no en ROC / AUC.
Entonces, en el mundo real, la curva PR se usa más ya que las muestras positivas y negativas son muy desiguales. La curva ROC / AUC no refleja el rendimiento del clasificador, pero la curva PR sí.
Si solo hace el experimento en trabajos de investigación, puede usar el ROC, los resultados experimentales serán más hermosos. Por otro lado, la curva PR se usa en el problema real, y tiene una mejor capacidad de interpretación.
fuente
Las respuestas anteriores son buenas.
Con datos desequilibrados, el AUC aún le da un valor engañoso de alrededor de 0.8. Sin embargo, es alta debido a la gran FP, en lugar de la gran TP (Verdadero positivo).
Tal como el ejemplo a continuación,
Entonces, cuando usa AUC para medir el rendimiento del clasificador, el problema es que el aumento de AUC realmente no refleja un mejor clasificador. Es solo el efecto secundario de demasiados ejemplos negativos. Simplemente puede probar en su conjunto de datos.
Entonces, mis sugerencias para datos desequilibrados son similares a esta publicación . También puede probar la tabla de deciles, que se puede construir buscando "Tablas de clasificación y decil dos por dos". Mientras tanto, también estoy estudiando este problema y daré una mejor medida.
fuente
Para poner en palabras muy simples cuando tiene un desequilibrio de datos, es decir, la diferencia entre el número de ejemplos que tiene para las clases positivas y negativas es grande, siempre debe usar la puntuación F1. De lo contrario, puede utilizar curvas ROC / AUC.
fuente
Para algunos problemas de clasificación de varias clases, analizar y visualizar ROC / AUC no es sencillo. Puede examinar esta pregunta, ¿Cómo trazar curvas ROC en clasificación multiclase? . Bajo tal situación, usar la puntuación F1 podría ser una mejor métrica.
Y la puntuación F1 es una opción común para el problema de recuperación de información y popular en entornos de la industria. Aquí hay un ejemplo bien explicado, Construir modelos ML es difícil. Implementarlos en entornos empresariales reales es más difícil .
fuente
Si el objetivo de la clasificación es la puntuación por probabilidad, es mejor usar AUC que promedia todos los umbrales posibles. Sin embargo, si el objetivo de la clasificación solo necesita clasificar entre dos clases posibles y no requiere la probabilidad de que el modelo prediga cada clase, es más apropiado confiar en el puntaje F usando un umbral particular.
fuente