我试图理解矢量的熵。我开始通过用平均130,方差为1从正态分布产生大小百万的样品:Matlab - 直方图熵的比较
kk=normrnd(130,20,1000000,1);
kk=uint8(kk);%did this or else the result was 0
entropy(kk)
KK的imhist
是:
熵结果是6.3686
然后我从平均值为130和方差为1的正态分布中生成一个大小为1000的样本,按照与之前相同的步骤获得噪声分布,这里是直方图:
而且熵是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(或者如果我们谈论直方图)。这是正确的吗? – user2952272
在这个特殊情况下,如果方差增加很多,熵会下降,因为你应用这条线'kk = uint8(kk)',当然如果你的方差= 1000(例如)几乎所有的值都将= 0或= 255(所以熵值人为减少)!所以我建议你使用另一个可以考虑值<0和值> 255的公式,这次如果方差增加,熵总是会增加的。 – obchardon