J'utilise KL Divergence comme mesure de dissimilarité entre 2 P et Q .
=-∑P(Xi)ln(Q(Xi))+∑P(Xi)ln(P(Xi))
Si alors nous pouvons facilement calculer que P ( X i ) l n ( Q ( X i ) ) = 0 P ( X i ) l n ( P ( X i ) )
Mais si
distributions
distance
kullback-leibler
smwikipedia
la source
la source
Réponses:
Vous ne pouvez pas et vous ne le faites pas. Imaginez que vous ayez une variable aléatoire de distribution de probabilité Q. Mais votre ami Bob pense que le résultat vient de la distribution de probabilité P. Il a construit un encodage optimal, qui minimise le nombre de bits attendus qu'il devra utiliser pour vous dire le résultat. Mais, puisqu'il a construit l'encodage à partir de P et non à partir de Q, ses codes seront plus longs que nécessaire. La divergence KL mesure la durée des codes.
Disons maintenant qu'il a une pièce et qu'il veut vous dire la séquence des résultats qu'il obtient. Parce que la tête et la queue sont également probables, il leur donne les deux codes 1 bit. 0 pour la tête, 1 pour la queue. S'il obtient queue queue tête queue, il peut envoyer 1 1 0 1. Maintenant, si sa pièce tombe sur le bord, il ne peut pas vous le dire! Aucun code qu'il vous enverrait ne fonctionnerait. À ce stade, la divergence KL tombe en panne.
Étant donné que la divergence KL tombe en panne, vous devrez soit utiliser une autre mesure ou d'autres distributions de probabilité. Ce que vous devez faire dépend vraiment de ce que vous voulez. Pourquoi comparez-vous les distributions de probabilité? D'où viennent vos distributions de probabilité, sont-elles estimées à partir des données?
Vous dites que vos distributions de probabilités proviennent d'une manière ou d'une autre de documents en langage naturel et que vous souhaitez comparer des paires de catégories.
Tout d'abord, je recommanderais une mesure de parenté symétrique. Pour cette application, il semble que A soit aussi similaire à B que B est similaire à A.
Avez-vous essayé la mesure de similitude cosinus? C'est assez courant en PNL.
Si vous voulez vous en tenir à KL, une chose que vous pourriez faire est d'estimer une fonction de probabilité à partir des deux documents, puis de voir combien de bits supplémentaires vous auriez besoin en moyenne pour l'un ou l'autre document. Soit (P || (P + Q) / 2 + Q || (P + Q) / 2) / 2
la source
Dans la pratique, j'ai également rencontré ce problème. Dans ce cas, j'ai constaté que le fait de remplacer la valeur de 0 par un très petit nombre peut provoquer des problèmes. En fonction de la valeur que vous utilisez, vous introduirez un "biais" dans la valeur KL. Si vous utilisez la valeur KL pour le test d'hypothèse ou toute autre utilisation impliquant un seuil, cette petite valeur peut biaiser vos résultats. J'ai trouvé que la façon la plus efficace de traiter cela est de ne considérer que le calcul du KL sur un espace d'hypothèse cohérent X_i où les DEUX P et Q sont non nuls. Essentiellement, cela limite le domaine du KL à un domaine où les deux sont définis et vous évite les ennuis lors de l'utilisation du KL pour effectuer des tests d'hypothèse.
la source
La solution est de ne jamais autoriser 0 ou 1 probabilités dans les distributions estimées. Ceci est généralement réalisé par une certaine forme de lissage comme le lissage de Good-Turing, le lissage de Dirichlet ou le lissage de Laplace.
la source