我有一个问题,我认为这个问题涉及到信息论领域的“条件熵”。我正在努力想办法解决这个问题,但我需要一些帮助。考虑一个例子,其中我们有四个房子。第一个房子有八个人,第二个房子住四个人,第三个房子住两个人,第四个房子住两个人。所以,四栋房子和十六个人。如果我只是随机地从这些人中选择一个,那么这个选择就是从16个人中选择一个人,为这个选择产生4位的信息熵。
但现在考虑一个两步选择,首先我随机选择一所房子,然后在选定的房子中选择一个人。因此,第一步,即从四所可用房屋中挑选一所房子,生成两位信息熵。但现在,在我挑选第一所房子的25%的时间里,第二步在从第一所房子的八个人中选择一个人的过程中又增加了三个比特。在另外25%的情况下,我只需要另外两个比特就可以从住在第二个房子的四个人中选择一个人。最后,在整整一半的情况下,我只需要从住在第三或第四宫的两个人中挑选一个人。
不知何故,在我看来,两步法的位计数的加权平均值应该生成单步法所需的相同的四位总数。但我不能让这些数字加起来,所以很明显,数学上有比我所考虑的更多的东西。我希望你能简单地把概率加起来,就像这样:
(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。
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因此,我的数据中缺少了一些东西。有谁能给我指个方向吗?
发布于 2010-02-24 13:41:53
如果你随机选择一所房子(以均匀的概率,简称UP ),然后随机选择一个居民( UP ),你不是从16个UP中选择一个--你有一个有点扭曲的分布,这不出所料地产生较低的熵(UP最大化熵)。8个人以1/32的概率被选中,4个人以1/16的概率被选中,另外4个人以1/8的概率被选中。这个分布的熵为3.75比特,就像您用不同的方法计算的那样。
https://stackoverflow.com/questions/2323910
复制相似问题