добавление эпсилон в расчет энтропии

Используя некоторые математические приемы и MATLAB, мы можем легко вычислить энтропию заданного входа. Например

x = [10 25 4 10 9 4 4];
[a,b]=hist(x,unique(x));

x =

    10    25     4    10     9     4     4

a =

     3     1     2     1

b =

     4     9    10    25

У меня следующий вопрос: поскольку мы используем функцию журнала, рекомендуется ли добавлять небольшую константу в функцию логарифма для обеспечения правильных вычислений? Например, должны ли мы использовать +eps? В качестве примера:

probbailities=a./numel(x);

probbailities =

    0.4286    0.1429    0.2857    0.1429

-sum(probbailities .*log2(probbailities));

ans =

    1.8424

-sum(probbailities .*log2(probbailities+eps));

ans =

    1.8424

person dato datuashvili    schedule 06.06.2014    source источник
comment
извините, вместо суммы надо разделить на длину, но в данном случае это не имеет значения   -  person dato datuashvili    schedule 06.06.2014
comment
Поскольку в своем редактировании вы удаляете свой вопрос. Здесь нечего ответить. Но log2(0) = -Inf. Так что да, чтобы избежать неприятностей, эпсилон может быть хорошей идеей. Потому что с числовой неточностью вы потеряете некоторую информацию. Но если вы работаете с 4 цифрой, то достаточно и eps.   -  person Vuwox    schedule 06.06.2014
comment
но рекомендуется ли это, потому что мы используем функцию журнала, используйте +eps внутри логарифмической функции? это вопрос сэр   -  person dato datuashvili    schedule 06.06.2014
comment
Если ваша вероятность равна нулю, похоже, что ваш элемент не должен быть взят. Таким образом, вы не должны просто суммировать на этом. Эпсилон избегает бесконечности log2. Но обычно у вас не должно быть prob = 0.   -  person Vuwox    schedule 06.06.2014
comment
Возьмем пример количества слов, если ваше слово появляется с вероятностью 0. Это слово не нужно в вашем наборе. Так что не нужно вычислять пробу для этого. Таким образом, ваша оценка энтропии не должна принимать этот элемент. Таким образом, в log2 не должно быть 0. Так что нет проблем. И вероятность должна составлять 1. И в случае значения 1 prob = 1 и log2 (1) = 0. Энтропия 0 хороша для одного элемента, у вас нет ограничений с другими элементами.   -  person Vuwox    schedule 06.06.2014
comment
Вы можете прочитать пример подбрасывания монеты, чтобы понять, что вероятность находится между 0 и 1. Это показывает, что H(x) является параболой в этом случае.   -  person Vuwox    schedule 06.06.2014
comment
@AlexandreBizeau спокойной ночи, спасибо за ваши усилия   -  person dato datuashvili    schedule 06.06.2014
comment
Когда я рассчитываю энтропию совместного изображения, я обычно пропускаю любые ячейки вероятности, которые имеют 0. Что я делаю, так это нахожу любые места в PDF, которые имеют 0, и просто пропускаю те из них в сумме. Взгляните сюда: stackoverflow.com/questions /23691398/   -  person rayryeng    schedule 07.06.2014
comment
но я не вижу причины минусовать   -  person dato datuashvili    schedule 07.06.2014
comment
@datodatuashvili Я не минусовал. Это законный вопрос. Однако ваша формулировка о том, следует ли добавлять константу, чтобы обеспечить правильный домен, была не очень ясной в вопросе. Я изменил вашу формулировку, чтобы отразить это.   -  person rayryeng    schedule 08.06.2014