Encoding 香农';决策树中的s熵测度

Encoding 香农';决策树中的s熵测度,encoding,machine-learning,decision-tree,entropy,information-theory,Encoding,Machine Learning,Decision Tree,Entropy,Information Theory,为什么香农熵测度用于决策树分支 熵=-p(+)对数(p(+))-p(-)对数(p(-) 我知道这是对编码信息所需比特数的一种度量;分布越均匀,熵越大。但是我不明白为什么在创建决策树(选择分支点)时会如此频繁地使用它。因为你想问一个能给你提供最多信息的问题。我们的目标是尽量减少决策树中决策/问题/分支的数量,因此您可以从提供最多信息的问题开始,然后使用以下问题来填写详细信息。为了决策树,请忘记位数,只关注公式本身。考虑一个二进制(+/-)分类任务,在训练数据中有相同数量的+和-示例。最初,熵将为1

为什么香农熵测度用于决策树分支

熵=-p(+)对数(p(+))-p(-)对数(p(-)


我知道这是对编码信息所需比特数的一种度量;分布越均匀,熵越大。但是我不明白为什么在创建决策树(选择分支点)时会如此频繁地使用它。

因为你想问一个能给你提供最多信息的问题。我们的目标是尽量减少决策树中决策/问题/分支的数量,因此您可以从提供最多信息的问题开始,然后使用以下问题来填写详细信息。

为了决策树,请忘记位数,只关注公式本身。考虑一个二进制(+/-)分类任务,在训练数据中有相同数量的+和-示例。最初,熵将为1,因为
p(+)=p(-)=0.5
。您希望在一个属性上拆分数据,该属性最大程度地降低了熵(即,使类的分布最不随机)。如果选择与类完全无关的属性A1,则在将数据除以A1的值后,熵仍将为1,因此熵不会减少。现在假设另一个属性A2完美地分隔了类(例如,对于
A2=“yes”
,类总是
+
,对于
A2=“no”
,类总是
-
。在这种情况下,熵是零,这是理想的情况


在实际情况中,属性通常不会对数据进行完美分类(熵大于零)。因此,您可以选择对数据进行“最佳”分类的属性(熵减少最大)。以这种方式分离数据后,将以类似的方式为第一次拆分的每个分支选择另一个属性,以进一步减少该分支上的熵。此过程将继续构建树。

您似乎理解该方法背后的数学原理,但下面是一个简单的示例ght给你一些使用这种方法背后的直觉:假设你在一个有100名学生的教室里。每个学生坐在一张桌子旁,桌子被组织成10行10列。100名学生中有1名学生可以获得奖品,但你必须猜出是哪个学生获得奖品。catch是指每次你猜的时候,奖品的价值都会递减。你可以先逐个询问每个学生是否有奖品。但是,最初,你只有1/100的机会猜对,而且当你发现奖品时,它很可能一文不值(将每个猜测都视为决策树中的一个分支)。相反,你可以提出广泛的问题,大大减少每个问题的搜索空间。例如,“学生是否在第1行到第5行的某处?”无论答案是“是”还是“否”您已经将树中的潜在分支数减少了一半。

根据您的解释,您可以解释为什么需要使用log函数吗?如果您注意到
p(+)=1-p(-)
,则在等式中使用
log
函数可以提供一个很好的特性,即当
p(+)时,函数具有最小值(零)
为零或一,当
p(+)
为1/2时(即,当两个类的可能性相等时),其最大值为(1)。公式本身不需要
log
函数。当
p(+)时,可以使用另一个为零的对称函数
为0或1,其最大值为0.5,并随距离
p(+)=0.5单调减小。