计算属性的熵

数据挖掘 数据挖掘
2021-09-17 09:20:33

您能否展示熵(Ssun)的逐步计算?我不明白 0.918 是如何得出的。

我试过,但我得到的值为 0.521089678, 0.528771238, 0.521089678 用于晴天、风雨、雨天。

我能够正确计算目标熵(决策)= -(6/10)*log(6/10) + -(2/10)log(2/10) + -(1/10)log(1 /10) + -(1/10)log(1/10) = 1.570950594

我完全被困在下一步。请求您的帮助。

参考: http: //www.doc.ic.ac.uk/~sgc/teaching/pre2012/v231/lecture11.html 请搜索“我们需要做的第一件事是确定将哪个属性放入节点在我们树的顶部:”到达我所指的那条线。

2个回答

考虑熵的公式:

E(S)=i=1npilog2pi

为您的问题扩展四个概念决策属性的总和给出

E(S)=pcinemalog2(pcinema)ptennislog2(ptennis)pstayinlog2(pstayin)pshoppinglog2(pshopping)

有三个观察结果Weather=Sunny这三个中,一个有Decision=Cinema,两个有Decision=Tennis所以Weather=Sunny你有pcinema=13,ptennis=23,其他决策概率为零。将这些值代入上面的等式给出

E(SSun)=13log2(13)23log2(23)(0)log2(0)(0)log2(0)=0.38998+0.52832+0+0=0.918

我先解释一下决策树的熵的概念:

熵是一组元素的所谓杂质度量。杂质 - 与纯度相反 - 是指决策类别(或类别标签)在集合内的分布。最初,表格中的每一行都是一个元素,您的元素集是表格的所有行。如果这个集合只包含相同的类标签,则称为纯集合;如果它包含相同比例的所有不同类标签,则称为不纯集合。转换为熵值(记住作为杂质度量,集合在后一种情况下具有最高可能值,在前一种情况下(只是相同的类标签)具有最低值。熵的最低可能值为 0。

因此,让我们选择一个视觉表示来说明什么是真正重要的,什么对熵无关紧要。

1)您从包含以下类标签的初始表开始:

在此处输入图像描述

请注意,对于计算熵,其余属性、属性值都不重要,行的顺序也不重要(熵是一组元素的度量)

2)您将不同的类标签转换为不同的颜色

在此处输入图像描述

3)因此,您只需为每个类标签(=元素)绘制一个圆圈(“球”),而不是这个带有彩色类标签的表

在此处输入图像描述

现在你把所有的球都扔进一个袋子里。给你!集合中的元素表示为袋子中的球。如果您打开袋子并查看它,您可能会看到

  1. 只是相同颜色的球-> 一种纯色。熵说,它一点也不纯,我给它一个零!熵 = 0
  2. 相同数量的不同颜色的球 --> 看起来一点也不纯净,很不纯净!熵将最高可能值分配给该集合(袋子)。可能的最高熵值取决于类标签的数量。如果您只有两个,则最大熵为 1。在您的情况下,您有 4 个不同的类别标签,因此最大熵将是例如,如果您有 12 个球和每种颜色的 3 个球。4 类集合的最大熵为 2。
  3. 以上都不是。那么你的熵在这两个值之间。如果一种颜色占主导地位,那么熵将接近 0,如果颜色非常混合,那么它接近最大值(在您的情况下为 2)。

决策树如何使用熵?

好吧,首先你计算整个集合的熵。那个杂质是你的参考。你的决策树试图实现的是减少整个集合的杂质。因此,给定属性的信息增益是通过获取整个集合的熵并减去通过将整个集合分解为每个属性类别而获得的集合熵来计算的。为了确保只有几个元素的集合不会获得与具有许多元素的集合相同的权重,集合的熵乘以它们的相对频率。

回到这个例子,为了计算增益(S,父母),您需要计算这两个集合的加权熵:设置 1 = 具有类别(父)的所有行 = 是,设置 2 = 具有类别(父)的所有行= 否)。

Set 1 指的是五行,所有的决策类别 = 电影院(只有 5 个橙色球!)所以重量是 10 行中的 5 行 = 5/10 = 0.5。熵为 0(完全纯)或通过应用公式:

在此处输入图像描述

你有所有类标签的总和,所以 n = 4。所以你为每个 i 分配一个类标签。例如

因为 i = 1 是电影院: - (5/5 * log(3/3) = - (1 * log(1)) = - (1*0) = 0

因为 i = 2 是网球: - (0/5 * log(0/3) = - (0 * log(0)) = 0

对于 i = 3 留在: - (0/5 * log(0/3) = - (0 * log(0)) = 0

对于 i = 4 正在购物: - (0/5 * log(0/3) = - (0 * log(0)) = 0

所以四项之和为 0。0 乘以权重 0.5 等于 0。

Set 2 也指 5 行,具有决策类别 = 1*cinema, 2*tennis, 1*stay in, 1*shopping 所以权重也是 10 行中的 5 行 = 5/10 = 0.5。应用公式:

对于 i = 1 是电影院: - (1/5 * log(1/5) = - (0.2 * -2,32) = 0.46

对于 i = 2 是网球: - (2/5 * log(2/5) = - (0.4 * -1,32) = 0.53

对于 i = 3 留在: - (1/5 * log(1/5) = - (0.2 * -2,32) = 0.46

对于 i = 4 正在购物: - (1/5 * log(1/5) = - (0.2 * -2,32) = 0.46

所以四个之和是 1.92。1.92 乘以权重 0.5 = 0.96。因此,该属性的增益为:初始熵 - 所有属性类别的加权熵:1.57 - 0 - 0.96 = 0.61。

对于其他属性,您执行相同的计算。