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

我有一个问题,我认为它涉及信息理论领域的“条件熵” . 我试图绕过它,但可以使用一些帮助 . 考虑一个我们有四个房子的例子 . 在第一个房子里有八个人,四个人住在第二个房子里,第三个房子里有两个人,第四个房子里有两个人 . 所以,四个房子和十六个人 . 如果我只是随意选择这些人中的一个,那么该选择是从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

所以,我的数字中缺少一些东西 . 谁能指出我正确的方向?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值