【发布时间】:2013-02-07 18:58:21
【问题描述】:
为什么在决策树分支中使用香农熵度量?
熵(S) = - p(+)log( p(+) ) - p(-)log( p(-) )
我知道这是衡量数字的标准。编码信息所需的比特数;分布越均匀,熵越大。但我不明白为什么它如此频繁地应用于创建决策树(选择分支点)。
【问题讨论】:
标签: encoding machine-learning decision-tree entropy information-theory
为什么在决策树分支中使用香农熵度量?
熵(S) = - p(+)log( p(+) ) - p(-)log( p(-) )
我知道这是衡量数字的标准。编码信息所需的比特数;分布越均匀,熵越大。但我不明白为什么它如此频繁地应用于创建决策树(选择分支点)。
【问题讨论】:
标签: encoding machine-learning decision-tree entropy information-theory
您似乎了解该方法背后的数学原理,但这里有一个简单的示例,可能会让您对为什么使用这种方法有一些直觉:假设您在一个有 100 名学生的教室里。每个学生都坐在一张课桌前,课桌被组织成 10 行 10 列。 100 名学生中有 1 名有奖品,但你必须猜出是哪个学生才能获得奖品。问题是,每次您猜测时,奖品的价值都会减少。您可以先单独询问每个学生是否有奖品。但是,最初,您只有 1/100 的机会猜对,而且很可能当您找到奖品时,它已经毫无价值(将每个猜测都视为决策树中的一个分支)。相反,您可以提出广泛的问题,从而大大减少每个问题的搜索空间。例如“学生在第 1 行到第 5 行的某个地方吗?”无论答案是“是”还是“否”,您都将树中潜在分支的数量减少了一半。
【讨论】:
为了决策树,忘记位数,只关注公式本身。考虑一个二进制 (+/-) 分类任务,其中您的训练数据中有相同数量的 + 和 - 示例。最初,熵将是 1,因为p(+) = p(-) = 0.5。您希望在最能降低熵的属性上拆分数据(即,使类的分布最不随机)。如果选择一个与类完全无关的属性 A1,那么在将数据按 A1 的值进行拆分后,熵仍然为 1,因此熵没有减少。现在假设另一个属性 A2 完美地分隔了类(例如,对于 A2="yes",类始终为 +,对于 A2="no",类始终为 -。在这种情况下,熵为零,这是理想情况。
在实际情况下,属性通常不能完美地对数据进行分类(熵大于零)。因此,您选择对数据进行“最佳”分类的属性(提供最大的熵减少)。一旦以这种方式分离数据,则以类似方式从第一次拆分中为每个分支选择另一个属性,以进一步减少沿该分支的熵。这个过程继续构建树。
【讨论】:
p(+) = 1 - p(-),在方程中有log 函数给它一个很好的属性,当p(+) 是零或一并且有它的最大值 (1) 当p(+) 为 1/2 时(即,当两个类的可能性相等时)。公式本身不需要log 函数。您可以使用备用对称函数,当p(+) 为零或一时为零,最大值为 0.5,并随着与 p(+) = 0.5 的距离单调递减。
因为你想问一个能给你最多信息的问题。目标是尽量减少树中决策/问题/分支的数量,因此您可以从能够为您提供最多信息的问题开始,然后使用以下问题填写详细信息。
【讨论】: