为什么我的信息增益是负数?

4

[已解决]

我的错误在于我没有意识到如果全部为同一类型,则熵为0。因此,如果全部为正数,则熵为0;如果全部为负数,则熵也为零。当正负数量相等时,熵为1。

出现负信息增益是没有意义的。

但是基于这个例子,我得到了一个负信息增益。

以下是数据:

enter image description here

如果我计算湿度属性的信息增益,结果如下:

enter image description here

很明显我在这里漏掉了什么。

编辑: 澄清我的理解。

整个系统的熵定义如下:

enter image description here

在这种情况下,它是这样的:

enter image description here

每个属性的信息增益定义如下:

enter image description here

对于湿度,我计算如下:

系统熵 - (1/4)正常湿度熵 - (3/4)高湿度熵

如此在Libre Office Calc中计算:

enter image description here

或者我对于属性信息增益公式的理解是不正确的吗?

1个回答

2
首先,我假设你的变量S是EnjoySport。(顺便说一句,我认为你可以更清楚地表达这段文字。)
所以S的熵是0.8113,但这是我唯一同意的部分。
给定Normal时,S的熵为0,因为它是确定性的。
给定High时,S的熵为0.91829583405448945,但你需要将其乘以0.75,因为这是Normal的概率。因此,这给出了0.68872187554086706。
差异是非负的,正如预期的那样。
请注意,信息增益是熵差的期望值,期望值需要考虑到条件事件发生的概率。

嗨Ami,谢谢。我找到了我的错误。如果全部为负数或全部为正数,则熵为0。如果正负数相等,则熵为1。 - Letholdrus
1
没错,但也不要忘记在计算信息增益时乘以所条件化变量的事件概率!我必须说,在这里看到一个关于熵的问题真是太好了。 - Ami Tavory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接