[解决]
我的错误是我没有意识到如果熵都是一种,熵就是0。因此,如果所有都是正数,则熵为0,如果全部为负,则它也为零。如果等量是正数和负数,则熵将为1。
获得负面信息是没有意义的。
然而,根据这个例子,我获得了负面信息。
这是数据:
如果我计算湿度属性的信息增益,我得到这个:
显然我在这里遗漏了一些东西。
编辑: 澄清我是如何理解它的。
整个系统的熵定义为:
在这种情况下是:
每个属性的信息增益定义为:
我计算的湿度是:
系统熵 - (1/4)湿度熵正常 - (3/4)湿度熵高
按照这个Libre Office Calc:
或者我对属性的信息获取公式的理解不正确吗?
答案 0 :(得分:1)
首先,我假设你的 S 变量是 EnjoySport 。 (我想你可以更清楚地说明文字,BTW。)
所以 S 的熵是0.8113,但那是我同意的最后一部分。
给定 Normal 的 S 的熵为0,因为它是确定性的。
给出高的 S 的熵是0.91829583405448945,但是你需要乘以0.75,因为这是 Normal 的概率。所以这给你0.68872187554086706。
正如预期的那样,差异是非负的。
请注意,信息增益为expected difference in Entropy,期望需要考虑条件事件的概率。