Estoy usando KL divergencia como una medida de disimilitud entre 2 y .P Q
=-∑P(Xi)ln(Q(Xi))+∑P(Xi)ln(P(Xi))
Si , podemos calcular fácilmente que P ( X i ) l n ( Q ( X i ) ) = 0 P ( X i ) l n ( P ( X i ) ) = 0
Pero si y cómo calcular elQ ( X i ) = 0 P ( X i ) l n ( Q ( X i ) )
distributions
distance
kullback-leibler
smwikipedia
fuente
fuente
Respuestas:
No puedes y no lo haces. Imagina que tienes una variable aleatoria de distribución de probabilidad P. Pero tu amigo Bob cree que el resultado proviene de la distribución de probabilidad P. Ha construido una codificación óptima, que minimiza el número de bits esperados que necesitará para decirte Salir. Pero, dado que construyó la codificación desde P y no desde Q, sus códigos serán más largos de lo necesario. La divergencia KL mide cuánto tiempo más durarán los códigos.
Ahora digamos que tiene una moneda y quiere decirte la secuencia de resultados que obtiene. Debido a que la cabeza y la cola son igualmente probables, les da ambos códigos de 1 bit. 0 para la cabeza, 1 para la cola. Si consigue cola cola cabeza cola, puede enviar 1 1 0 1. Ahora, si su moneda cae en el borde, ¡no puede decírtelo! Ningún código que te envíe funcionaría. En este punto, la divergencia KL se rompe.
Dado que la divergencia KL se rompe, tendrá que usar otra medida u otras distribuciones de probabilidad. Lo que debes hacer realmente depende de lo que quieras. ¿Por qué estás comparando distribuciones de probabilidad? ¿De dónde provienen sus distribuciones de probabilidad? ¿Se calculan a partir de los datos?
Usted dice que sus distribuciones de probabilidad provienen de documentos de lenguaje natural de alguna manera, y desea comparar pares de categorías.
Primero, recomendaría una medida de relación simétrica. Para esta aplicación, parece que A es tan similar a B como B es similar a A.
¿Has probado la medida de similitud de coseno? Es bastante común en PNL.
Si desea seguir con KL, una cosa que podría hacer es estimar una función de probabilidad de ambos documentos y luego ver cuántos bits adicionales necesitaría en promedio para cada documento. Es decir (P || (P + Q) / 2 + Q || (P + Q) / 2) / 2
fuente
En la práctica, me he encontrado con este problema también. En este caso, descubrí que sustituir el valor de 0 por un número muy pequeño puede causar problemas. Dependiendo del valor que utilice, introducirá un "sesgo" en el valor KL. Si está utilizando el valor KL para la prueba de hipótesis o algún otro uso que implique un umbral, entonces este pequeño valor puede sesgar sus resultados. He descubierto que la forma más efectiva de lidiar con esto es considerar solo calcular el KL sobre un espacio de hipótesis consistente X_i donde AMBOS P y Q no son cero. Esencialmente, esto limita el dominio del KL a un dominio donde ambos están definidos y lo mantiene alejado de problemas cuando usa el KL para realizar pruebas de hipótesis.
fuente
La solución es no permitir nunca 0 o 1 probabilidades en distribuciones estimadas. Esto generalmente se logra mediante alguna forma de suavizado como el suavizado de Good-Turing, el suavizado de Dirichlet o el suavizado de Laplace.
fuente