¿Qué se considera una buena pérdida de registro?

16

Estoy tratando de entender mejor la pérdida de registro y cómo funciona, pero una cosa que parece que no puedo encontrar es poner el número de pérdida de registro en algún tipo de contexto. Si mi modelo tiene una pérdida de registro de 0.5, ¿es bueno? ¿Qué se considera un puntaje bueno y malo? ¿Cómo cambian estos umbrales?

usuario1923975
fuente
Este hilo es relevante aquí: stats.stackexchange.com/q/414349/121522
mkt - Reinstate Monica

Respuestas:

19

El logloss es simplemente L(pi)=log(pi) donde es simplemente la probabilidad atribuida a la clase real.p

Entonces es bueno, atribuimos la probabilidad 1 a la clase correcta, mientras que L ( p ) = + L(p)=01L(p)=+ es malo, porque atribuimos la probabilidad a la clase real.0

Entonces, respondiendo a su pregunta, significa, en promedio, que atribuyó a la clase correcta la probabilidad p 0.61 entre muestras.L(p)=0.5p0.61

Ahora, decidir si esto es lo suficientemente bueno depende de la aplicación, por lo que depende del argumento.

Firebug
fuente
9

Como cualquier métrica, una buena métrica es la mejor que la suposición "tonta", por casualidad, si tuviera que adivinar sin información sobre las observaciones. Esto se llama el modelo de solo intercepción en las estadísticas.

Esta pregunta "tonta" depende de 2 factores:

  1. el numero de clases
  2. el balance de clases: su prevalencia en el conjunto de datos observado

En el caso de la métrica LogLoss, una métrica "conocida" habitual es decir que 0,693 es el valor no informativo. Esta cifra se obtiene al predecir p = 0.5cualquier clase de problema binario. Esto es válido solo para problemas binarios equilibrados . Porque cuando la prevalencia de una clase es del 10%, predecirá p =0.1para esa clase, siempre. Esta será su línea de base de predicciones tontas, por casualidad, porque la predicción 0.5será más tonta.

I. Impacto del número de clases Nen dumb-logloss:

En el caso equilibrado (cada clase tiene la misma prevalencia), cuando predices p = prevalence = 1 / Npara cada observación, la ecuación se vuelve simplemente:

Logloss = -log(1 / N)

log siendo Ln , logaritmo neperiano para quienes usan esa convención.

En el caso binario, N = 2 :Logloss = - log(1/2) = 0.693

Entonces, los Logosses tontos son los siguientes:

dumb-logloss dependiendo del número de clases - caso balanceado

II Impacto de la prevalencia de clases en dumb-Logloss:

a. Caso de clasificación binaria

En este caso, predecimos siempre p(i) = prevalence(i), y obtenemos la siguiente tabla:

clasificación binaria logloss, balanceada - tabla

Entonces, cuando las clases están muy desequilibradas (prevalencia <2%), ¡ un logloss de 0.1 puede ser muy malo! Tal como una precisión del 98% sería malo en ese caso. Entonces quizás Logloss no sería la mejor métrica para usar

clasificación binaria logloss, no balanceada - gráfico

si. Caso de tres clases

"Dumb" -logloss dependiendo de la prevalencia - caso de tres clases:

logloss de clasificación de tres clases, desequilibrado

Podemos ver aquí los valores de casos binarios balanceados y de tres clases (0.69 y 1.1).

CONCLUSIÓN

Un logloss de 0,69 puede ser bueno en un problema multiclase y muy malo en un caso sesgado binario.

Dependiendo de su caso, será mejor que se calcule la línea de base del problema para verificar el significado de su predicción.

En los casos sesgados, entiendo que logloss tiene el mismo problema que la precisión y otras funciones de pérdida: solo proporciona una medición global de su rendimiento. Por lo tanto, sería mejor que complemente su comprensión con métricas centradas en las clases minoritarias (recuperación y precisión), o tal vez no use logloss en absoluto.

Fed Zee
fuente
(+1) ¡Bienvenido a CV! Puedes usar la composición matemática en tu publicación. Más información: math.meta.stackexchange.com/questions/5020/…
Sycorax dice Reinstate Monica
Mejor que mi respuesta, +1
Firebug
5

Entonces, esto es en realidad más complicado que la respuesta de Firebugs y todo depende de la variación inherente del proceso que está tratando de predecir.

Cuando digo variación, lo que quiero decir es "si un evento se repitiera exactamente en las mismas condiciones, conocidas y desconocidas, cuál es la probabilidad de que vuelva a ocurrir el mismo resultado".

Un predictor perfecto tendría una pérdida, para probabilidad P: Pérdida = P ln P + (1-P) ln (1-P)

Si está tratando de predecir algo donde, en el peor de los casos, se predecirán algunos eventos con un resultado de 50/50, entonces al integrar y tomar el promedio, la pérdida promedio sería: L = 0.5

Si lo que intenta predecir es un poco más repetible, la pérdida de un modelo perfecto es menor. Entonces, por ejemplo, digamos que con información suficiente, un modelo perfecto fue capaz de predecir el resultado de un evento donde, en todos los eventos posibles, lo peor que podría decir es 'este evento sucederá con un 90% de probabilidad', entonces la pérdida promedio sería L = 0.18 .

También hay una diferencia si la distribución de probabilidades no es uniforme.

Entonces, en respuesta a su pregunta, la respuesta es 'depende de la naturaleza de lo que está tratando de predecir'

simeon
fuente
Es bien conocido un L0,693es la pérdida logarítmica binaria no informativa ( es decir, adivinanzas aleatorias). Realmente no sigo tus cálculos, ¿estás asumiendo una distribución uniforme parapag¿o algo así?
Firebug
Imagine que tiene un sistema, donde conoce toda la información posible sobre su estado actual. Imagine que el sistema tiene algún nivel interno de aleatoriedad, de modo que, dados todos los parámetros sobre su estado, un resultado puede ser diferente. Digamos, por ejemplo, en este sistema que puede variar entre 0-10%. Un modelo perfecto (es decir, uno donde su rendimiento solo está limitado por la variación inherente) obtendríaL0,18. A modo de comparación, un sistema que varía de 0 a 100% obtendría su mejor rendimientoL0,5.
simeon
1
No estoy en desacuerdo con tu peor caso. Simplemente digo que un "buen resultado" depende del sistema. 0.4 puede indicar un buen resultado para algunos sistemas (como el último ejemplo) o uno malo (para el primero).
simeon
0

Yo diría que la respuesta estadística estándar es comparar con el modelo de solo intercepción. (esto maneja las clases desequilibradas mencionadas en otras respuestas) cf pseudo r ^ 2 de mcFadden. https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-are-pseudo-r-squareds/

Ahora el problema es cuál es el valor máximo. fundamentalmente el problema es que la probabilidad de un evento no está definida fuera de un modelo para los eventos. La forma en que sugeriría es que tome sus datos de prueba y los agregue a un cierto nivel, para obtener una estimación de probabilidad. luego calcule el logloss de esta estimación.

por ejemplo, está prediciendo la tasa de clics basada en (sitio web, ad_id, consumidor_id), luego agrega clics, impresiones al nivel de sitio web y calcula el ctr en el conjunto de prueba para cada sitio web. luego calcule log_loss en su conjunto de datos de prueba utilizando estas tasas de clics de prueba como predicciones. Este es el logloss óptimo en su conjunto de prueba para un modelo que solo usa identificadores de sitios web . El problema es que podemos hacer que esta pérdida sea tan pequeña como queramos simplemente agregando más funciones hasta que cada registro sea identificado de manera única.

seanv507
fuente