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?
machine-learning
loss-functions
log-loss
usuario1923975
fuente
fuente
Respuestas:
El logloss es simplementeL(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)=0 1 L(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.5 p≈0.61
Ahora, decidir si esto es lo suficientemente bueno depende de la aplicación, por lo que depende del argumento.
fuente
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:
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.5
cualquier 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.1
para esa clase, siempre. Esta será su línea de base de predicciones tontas, por casualidad, porque la predicción0.5
será más tonta.I. Impacto del número de clases
N
en dumb-logloss:En el caso equilibrado (cada clase tiene la misma prevalencia), cuando predices
p = prevalence = 1 / N
para cada observación, la ecuación se vuelve simplemente:Logloss = -log(1 / N)
log
siendoLn
, 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:
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: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
si. Caso de tres clases
"Dumb" -logloss dependiendo de la prevalencia - caso de tres clases:
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.
fuente
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'
fuente
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.
fuente