0

使用一些数学技巧和 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
4

0 回答 0