logloss vs gini / auc

15

He entrenado dos modelos (clasificadores binarios usando h2o AutoML) y quiero seleccionar uno para usar. Tengo los siguientes resultados:

 model_id        auc     logloss    logloss_train   logloss_valid   gini_train  gini_valid

DL_grid_1   0.542694    0.287469         0.092717        0.211956     0.872932    0.312975
DL_grid_2   0.543685    0.251431         0.082616        0.186196     0.900955    0.312662

Las columnas aucy loglossson las métricas de validación cruzada (la validación cruzada solo utiliza los datos de entrenamiento). las métricas ..._trainy ..._validse encuentran ejecutando las métricas de capacitación y validación a través de los modelos respectivamente. Quiero usar logloss_valido gini_validpara elegir el mejor modelo.

El modelo 1 tiene un mejor gini (es decir, un mejor AUC), pero el modelo dos tiene un mejor logloss. Mi pregunta es cuál elegir cuál creo que plantea la pregunta, cuáles son las ventajas / desventajas de usar gini (AUC) o logloss como medida de decisión.

Dan
fuente
1
Este video tiene una buena explicación de por qué se prefiere logloss si está interesado en las probabilidades y no solo en la clasificación. Tenga en cuenta que para la clasificación binaria, logloss es igual a la puntuación más brillante.
Dan

Respuestas:

11

Mientras que el AUC se calcula con respecto a la clasificación binaria con un umbral de decisión variable, logloss en realidad tiene en cuenta la "certeza" de la clasificación.

Por lo tanto, a mi entender, logloss conceptualmente va más allá del AUC y es especialmente relevante en casos con datos desequilibrados o en caso de un costo de error distribuido de manera desigual (por ejemplo, detección de una enfermedad mortal).

Además de esta respuesta muy básica, es posible que desee echar un vistazo a la optimización de auc vs logloss en problemas de clasificación binaria

Un ejemplo simple de cálculo de logloss y el concepto subyacente se discute en esta pregunta reciente La función de pérdida de registro en scikit-learn devuelve diferentes valores

Además, se ha hecho un muy buen punto en stackoverflow

Uno debe entender la diferencia crucial entre AUC ROC y métricas "puntuales" como precisión / precisión, etc. ROC es una función de un umbral. Dado un modelo (clasificador) que genera la probabilidad de pertenecer a cada clase, generalmente clasificamos el elemento a la clase con el mayor apoyo. Sin embargo, a veces podemos obtener mejores puntajes cambiando esta regla y exigiendo que un soporte sea 2 veces más grande que el otro para clasificarlo como una clase determinada. Esto suele ser cierto para los conjuntos de datos desequilibrados. De esta manera, en realidad está modificando el aprendizaje previo de las clases para que se ajuste mejor a sus datos. ROC analiza "lo que sucedería si cambio este umbral a todos los valores posibles" y luego AUC ROC calcula la integral de dicha curva.

Nikolas Rieble
fuente
Su primer enlace contiene "AUC maximiza la capacidad del modelo para discriminar entre clases mientras que el logloss penaliza la divergencia entre las probabilidades reales y estimadas" , por lo que básicamente me pregunto cómo elijo entre esos dos objetivos. ¿Es un caso de si trabajo directamente con la salida de 'probabilidad' del modelo? Debería optimizar logloss (y luego probablemente también hacer una calibración de probabilidad ) donde, como si realmente lo estuviera usando como clasificador para tomar decisiones difíciles que es una u otra clase que debo ir con AUC?
Dan
2
Si solo le importa una decisión correcta o incorrecta -> use AUC - si le importa cuánto "correcto" o "incorrecto" tiene -> use logloss
Nikolas Rieble
Cualquier otra elección de medida de rendimiento no puede generalizarse, sino que depende del dominio / aplicación.
Nikolas Rieble