Я пытаюсь понять энтропию вектора. Я начал путем генерации образца размера 1000000 от нормального распределения со средним значением 130 и дисперсией 1:Matlab - сравнение энтропии гистограмм
kk=normrnd(130,20,1000000,1);
kk=uint8(kk);%did this or else the result was 0
entropy(kk)
imhist
КК является:
В результате энтропии 6,3686
Затем я сгенерировал образец размером 1000 из нормального распределения со средним значением 130 и дисперсией 1, следуя тем же самым шагам, что и раньше, чтобы получить более шумное распределение, вот гистограмма:
И энтропия 6,2779. Так что кажется, что шумнее распределение, тем меньше энтропия. Я вычислил энтропии для других размеров выборки нормального распределения с тем же средним значением и дисперсией, и он изменяется в соответствии с этим. Но правильно? Это правильный способ сравнить энтропии распределения гистограмм?
[ИЗДАНИЕ]
После того, что obchardon сказал я исследовал немного больше. Это распределение:
kk1=normrnd(130,75,1000000,1);%entropy=7.6983
дает мне большую энтропию, чем:
kk2=normrnd(130,20,1000000,1);%entropy=6.3686
но это Энтропия меньше kk1
и kk2
:
kka2=normrnd(130,150,100000,1);%entropy=6.1660
Как это возможно?
Хорошая точка. Я был отброшен всем «гауссовским и шумным гауссовым» сравнением и проигнорировал эффект от дискретного характера вектора. Одно из важных отличий абсолютной энтропии от дифференциальной энтропии! Спасибо, что поймал это. (также, я думаю, вы хотели сказать '- (n * (1/n) * log2 (1/n))' выше) –
Итак, я попробовал то, что вы говорите в разных дистрибутивах. Величина энтропии уменьшается по мере увеличения дисперсии, но только тогда, когда стороны вокруг среднего превышают 0. Иначе это увеличивает значение энтропии, поскольку существуют некоторые значения, которые имеют одинаковую вероятность 0 (или интенсивность 0, если говорить о гистограммах). Это правильно? – user2952272
В этом ОСОБЕННОМ случае энтропия будет уменьшаться, если дисперсия сильно увеличится, потому что вы применяете эту строку 'kk = uint8 (kk)', так что, конечно, если ваша дисперсия = 1000 (например), то почти все ваши значения будут = 0 или = 255 (поэтому энтропия искусственно уменьшается)! Поэтому я рекомендую вам использовать другую формулу, которая может принимать значение <0 и значение> 255, и на этот раз энтропия будет всегда увеличиваться, если дисперсия увеличивается. – obchardon