首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在两步决策中计算信息熵?

如何在两步决策中计算信息熵?
EN

Stack Overflow用户
提问于 2010-02-24 13:33:12
回答 1查看 310关注 0票数 1

我有一个问题,我认为这个问题涉及到信息论领域的“条件熵”。我正在努力想办法解决这个问题,但我需要一些帮助。考虑一个例子,其中我们有四个房子。第一个房子有八个人,第二个房子住四个人,第三个房子住两个人,第四个房子住两个人。所以,四栋房子和十六个人。如果我只是随机地从这些人中选择一个,那么这个选择就是从16个人中选择一个人,为这个选择产生4位的信息熵。

但现在考虑一个两步选择,首先我随机选择一所房子,然后在选定的房子中选择一个人。因此,第一步,即从四所可用房屋中挑选一所房子,生成两位信息熵。但现在,在我挑选第一所房子的25%的时间里,第二步在从第一所房子的八个人中选择一个人的过程中又增加了三个比特。在另外25%的情况下,我只需要另外两个比特就可以从住在第二个房子的四个人中选择一个人。最后,在整整一半的情况下,我只需要从住在第三或第四宫的两个人中挑选一个人。

不知何故,在我看来,两步法的位计数的加权平均值应该生成单步法所需的相同的四位总数。但我不能让这些数字加起来,所以很明显,数学上有比我所考虑的更多的东西。我希望你能简单地把概率加起来,就像这样:

代码语言:javascript
复制
(picking a house) + (picking a person in that house) ==

log(4) + [(1/4)*log(8) + (1/4)*log(4) + (1/4)*log(2) + (1/4)*log(2)]

但这会产生3.75位的结果,而不是我期望的4位。这是我用来计算的一小段python。

代码语言:javascript
复制
from math import log
def log2(x):
    return log(x,2)
x = log2(4) + ((1.0/4)*log2(8) + (1.0/4)*log2(4) + (1.0/4)*log2(2) + (1.0/4)*log2(2))
print x

因此,我的数据中缺少了一些东西。有谁能给我指个方向吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-24 13:41:53

如果你随机选择一所房子(以均匀的概率,简称UP ),然后随机选择一个居民( UP ),你不是从16个UP中选择一个--你有一个有点扭曲的分布,这不出所料地产生较低的熵(UP最大化熵)。8个人以1/32的概率被选中,4个人以1/16的概率被选中,另外4个人以1/8的概率被选中。这个分布的熵为3.75比特,就像您用不同的方法计算的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2323910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档