gpt4 book ai didi

matlab - 使用正常数据直方图与直接公式(matlab)的熵估计

转载 作者:太空宇宙 更新时间:2023-11-03 20:02:26 25 4
gpt4 key购买 nike

假设我们已经绘制了 n=10000 个标准正态分布样本。

现在我想用直方图来计算它的熵来计算概率。

1) 计算概率(例如使用matlab)

[p,x] = hist(samples,binnumbers);
area = (x(2)-x(1))*sum(p);
p = p/area;

(binnumbers 是根据某些规则确定的)

2) 估计熵

H = -sum(p.*log2(p))

给出 58.6488

现在用直接公式计算普通数据的熵

H = 0.5*log2(2*pi*exp(1)) = 2.0471

使用直方图+熵公式时我做错了什么?非常感谢您的帮助!!

最佳答案

你在求和中遗漏了 dp

dp = (x(2)-x(1));
area = sum(p)*dp;
H = -sum( (p*dp) * log2(p) );

这应该让你足够接近......

附言,
当你使用 log2(p) 时要小心,因为有时你可能有空箱子。你可能会发现 nansum有用。

关于matlab - 使用正常数据直方图与直接公式(matlab)的熵估计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16527672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com