如何计算连续值属性的信息增益

数据挖掘 数据集 数据挖掘 预测建模 决策树 卷积神经网络
2021-10-01 04:07:23

决策树只处理离散值,但我们需要将连续值转换为离散值。我的问题是如何?

我知道的步骤是:

  1. 按升序对值 A 进行排序。
  2. 找到值之间的中点一个一世一个一世+1.
  3. 找到每个值的熵。

我有这个例子有人可以解释我们如何计算熵值吗?

在此处输入图像描述

1个回答

在决策树中,(香农)熵不是根据实际属性计算的,而是根据类标签计算的。如果你想找到一个连续变量的熵,你可以使用微分熵指标,比如 KL 散度,但这不是决策树的重点。

在决策树中找到分裂决策的熵时,您会找到一个阈值(例如中点或您想出的任何东西),并计算每个阈值大小上每个类别标签的数量。例如:

Var1 | Class
0.75 | 1
0.87 | 0
0.89 | 1
0.96 | 0
1.02 | 1
1.05 | 1
1.14 | 1
1.25 | 1

让我们假设阈值为 0.99,因为我想要两个大小相同的箱,这是 0.96 和 1.02 之间的中点。左边的类是 [1, 0, 1, 0] (因为它是一半/一半,熵是 1.0),右边是 [1, 1, 1, 1] (因为它都是相等的,熵是 0.0) .

要制作一个像您在此处显示的表格,您需要定义 N 个阈值点(在您的情况下为 2.0、3.5、...、7.5),这将产生 N+1 个数据箱,您需要每个bin 并计算熵。更正确的表格可视化应该是将“分割点”值更改为“2.0 或更低”、“2.0 和 3.5 之间”、“3.5 和 4.5 之间”、...、“7.5 或更高”。

请注意,这一切都适用于分类(决策)树,而不是回归树,其中“类”实际上是一个连续变量。