为什么我得到负信息增益?

Why am I getting a negative information gain?

[已解决]

我的错误是我没有意识到如果所有的都是一种类型,熵就是0。因此,如果全部为正,则熵为 0,如果全部为负,则熵也为零。正负相等则熵为1

获得负信息增益是没有意义的。

然而,基于这个例子,我得到了负面的信息增益。

这是数据:

如果我计算湿度属性的信息增益,我会得到:

显然我在这里遗漏了一些东西。

编辑: 澄清我是如何理解它的。

整个系统的熵定义为:

在这种情况下是:

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

我计算的湿度是:

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

根据此 Libre Office Calc:

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

首先,我假设您的 S 变量是 EnjoySport。 (顺便说一句,我认为您可以更清楚地表述文本。)

所以S的熵是0.8113,但这是我同意的最后一部分。

给定 NormalS 的熵为 0,因为它是确定性的。

给定 HighS 的熵是 0.91829583405448945,但你需要将其乘以 0.75,因为那是 正常。所以这给你 0.68872187554086706.

正如预期的那样,差异是非负的。


注意Information gain是expected difference in Entropy,期望需要考虑条件事件的概率