选择决策树中的第一个节点,基本示例

数据挖掘 机器学习 决策树 信息论
2022-03-16 23:05:43

我想知道我是否正确理解了选择节点的过程,并想看看这个例子是否有意义。使用以下数据:

> df
  Y A B C
1 1 0 1 1
2 0 0 0 1
3 1 1 1 0
4 1 0 1 0
5 1 1 0 1
6 1 0 0 1

我将拆分 A、B、C 上的数据并评估每个拆分的熵,其中熵是使用计算的

plog2(p)+(1p)log2(1p)

其中p是特定拆分的成功比例。

当在 AI 上分裂时

  Y A B C
3 1 1 1 0
5 1 1 0 1

  Y A B C
1 1 0 1 1
2 0 0 0 1
4 1 0 1 0
6 1 0 0 1

对于A=1(第一个数据表)我有p=1,那么熵是 0。

对于A=0(第二张表)我有p=0.75和熵 0.81

所以对于分裂A我会说熵是

0+0.81=0.81

然后以类似的方式对B,C执行此操作。

对于B=1我发现p=1所以熵 = 1

对于B=0,我发现p=0.66所以熵 = 0.91

那么在B上分裂的熵是

0+0.91=0.91

对于C=1,我发现p=0.75所以熵 = 0.81

对于我发现所以熵 = 0C=0p=1

那么在上分裂的熵是C

0.81+0=0.81

鉴于上述具有最高熵的分裂是,因此我会选择首先在上分裂。BB

我现在有一个带有一个节点的决策树,并且需要为的每个分支选择下一个节点。B=1B=0

以与上述相同的方式进行该选择。

上面的计算和推理是否有效?

1个回答

上面的一些更正:

  • 在计算拆分的熵时,您应该考虑权重 - 每个分支中实例的分数:

entropy(A)=0(2/6)+0.81(4/6)=0.54entropy(B)=0(3/6)+0.91(3/6)=0.45entropy(C)=0(2/6)+0.81(4/6)=0.54

  • 在选择要拆分的属性时,应选择拆分后熵最低的属性。熵是不确定性,所以你想最小化它。例如,如果分割是完美的(一侧全为 0,另一侧全为 1),则熵将为 0。

正如您所提到的,在选择一个节点后,将递归地构建树。