我試圖理解矢量的熵。我開始通過用平均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