1

我正在研究ID3 机器学习算法使用的统计熵概念

对于以学习集 S 为例的域(即我用来构建决策树的示例集),我对对象进行分类所需的平均信息量由熵度量给出

所以我有以下公式:

在此处输入图像描述

因此,例如:

如果 S 是 14 个示例的集合,其中 9 个 YES 和 5 个 NO 示例,那么我有:

熵 (S) = - (9/14)*Log2(9/14) - (5/14)*Log2(5/14) = 0.940

这很容易计算,我的问题是,在我的书上我也读了这个注释:

请注意,如果 S 的所有成员都属于同一类(数据完全分类),则熵为 0。熵的范围是 0(“完全分类”)到 1(“完全随机”)。

这个断言让我感到困惑,因为我试图以这种方式更改前面的示例:

如果 S 是 14 个示例的集合,其中 14 个 YES 和 0 个 NO 示例,那么我有:

熵(S) = - (14/14)*Log2(14/14) - (0/14)*Log2(0/14) = 0 - 无穷大

因此,在这种情况下,我认为所有对象都属于同一个类(是),并且没有示例属于 NO 类。

所以我希望这个 S 集的熵值为 0 并且没有- 无穷大

我错过了什么?

肿瘤坏死因子

安德烈亚

4

1 回答 1

1

在计算熵时,您通过迭代相关节点处的唯一分类值来进行求和。您可以通过计算集合中有多少成员具有该值来在每次迭代中执行此操作,然后使用对数公式。在您的问题案例中,唯一出现的分类值是 YES,这意味着基于单次迭代的熵为零。您不能迭代 NO 值,因为没有一个示例具有该值。

于 2013-06-21T07:03:08.563 回答