可以在决策树中多次出现“拆分属性”吗?

时间:2013-11-15 03:45:02

标签: machine-learning data-mining decision-tree

只想弄清楚一件事:同一属性可以多次出现在决策树中,只要它们位于不同的“分支”中即可?

3 个答案:

答案 0 :(得分:6)

由于显而易见的原因,在同一分支中使用相同的决定是没有意义的。

在不同的分支上,这种推理显然不成立。

考虑经典的XOR(x,y)问题。您可以使用双层决策树来解决它,但是您需要在两个分支中拆分相同的属性。

If x is true:
    If y is true:  return false
    If y is false: return true
If x is false:
    If y is true:  return true
    If y is false: return false

另一个例子如下:假设您的数据在x = [0; 1]中是正数,在外部是负数。一棵好树将如下:

If x > 1:      return negative
If x <= 1:
    If x >= 0: return positive
    If x < 0:  return negative

这不是同一个决定,因此使用x两次是有意义的。

答案 1 :(得分:5)

  1. 一般情况下,只要你保留“树”的结构,你就可以做任何你想做的事。它们可以通过多种方式进行定制,虽然可以实现冗余,但不会破坏其有效性。

  2. 二元属性不应该在同一个早午餐中出现两次,这将是多余的。但是,连续属性可以多次出现在同一分支中。

答案 2 :(得分:2)

如果属性是分类属性,则不能将其用作拆分属性多次。如果属性是数字的,原则上它可以多次使用,但标准的决策树算法(C4.5算法)并没有那样实现。

以下描述基于属性都是分类的假设。

从解释的角度来看,决策树是可解释的,标记的实例如何通过从根到叶子使用的属性(以及属性的值)来解释。因此,在树的一个分支中具有重复的属性是没有意义的。

从算法的角度来看,一旦选择了一个属性作为分割属性,就不会再根据属性选择标准再次选择属性,例如:信息增益为0.这是因为所有实例在被属性过滤后都具有相同的属性值。再次使用该属性无法为分类带来更多信息。