Я использую KL Divergence как меру различия между 2 и .
=-ΣР(Хя)лп(В(Хя))+ΣР(Хя)лп(Р(Хя))
Если то мы можем легко вычислить, что P ( X i ) l n ( Q ( X i ) ) = 0 P ( X i ) l n ( P ( X i ) ) = 0
distributions
distance
kullback-leibler
smwikipedia
источник
источник
Ответы:
Вы не можете и не можете. Представьте, что у вас есть случайная переменная распределения вероятности Q. Но ваш друг Боб считает, что результат исходит из распределения вероятности P. Он построил оптимальное кодирование, которое минимизирует количество ожидаемых битов, которые ему нужно будет использовать, чтобы сообщить вам исход. Но, поскольку он построил кодировку из P, а не из Q, его коды будут длиннее, чем необходимо. KL-дивергенция измеряет, насколько длиннее будут коды.
Теперь предположим, что у него есть монета, и он хочет рассказать вам последовательность результатов, которые он получает. Поскольку голова и хвост одинаково вероятны, он дает им оба 1-битных кода. 0 для головы, 1 для хвоста. Если у него хвост, хвост, голова, хвост, он может отправить 1 1 0 1. Теперь, если его монета приземлится на грани, он не сможет вам сказать! Никакой код, который он посылает тебе, не сработает. В этот момент KL-расхождение нарушается.
Поскольку KL-дивергенция нарушается, вам придется либо использовать другую меру, либо другое распределение вероятностей. Что вы должны сделать, зависит от того, что вы хотите. Почему вы сравниваете распределение вероятностей? Откуда берутся ваши вероятностные распределения, они оцениваются по данным?
Вы говорите, что ваши вероятностные распределения как-то получены из документов на естественном языке, и вы хотите сравнить пары категорий.
Во-первых, я бы рекомендовал симметричную меру родства. Для этого приложения звучит так, как будто A похож на B, а B похож на A.
Вы пробовали меру косинусного подобия? Это довольно распространено в НЛП.
Если вы хотите придерживаться KL, одну вещь, которую вы могли бы сделать, это оценить функцию вероятности по обоим документам, а затем посмотреть, сколько дополнительных бит вам понадобится в среднем для каждого документа. То есть (P || (P + Q) / 2 + Q || (P + Q) / 2) / 2
источник
На практике я тоже столкнулся с этой проблемой. В этом случае я обнаружил, что замена значения 0 на очень небольшое число может вызвать проблемы. В зависимости от значения, которое вы используете, вы введете «смещение» в значение KL. Если вы используете значение KL для проверки гипотез или другого использования, которое включает пороговое значение, то это небольшое значение может повлиять на ваши результаты. Я обнаружил, что наиболее эффективный способ справиться с этим - это рассмотреть возможность вычисления KL только в согласованном пространстве гипотез X_i, где ОБА P и Q отличны от нуля. По сути, это ограничивает домен KL доменом, в котором определены оба, и избавляет вас от проблем при использовании KL для проверки гипотез.
источник
Решение состоит в том, чтобы никогда не допускать 0 или 1 вероятностей в оценочных распределениях. Обычно это достигается с помощью некоторой формы сглаживания, такой как сглаживание по Тьюрингу, сглаживание Дирихле или сглаживание Лапласа.
источник