CART决策树中的拆分冲突

时间:2016-01-27 23:50:43

标签: r decision-tree rpart

我目前在R中使用决策树(CART),包 rpart 拨浪鼓进行分类。

在训练我的CART树之后,我发现一些规则相互冲突。请考虑以下树,红色圆圈表示冲突的规则。

enter image description here

在父节点中,拆分为CHWC.VLV> = 15;如果这是真的你离开了树,如果它是假的,你就在树上。在左边,我们发现子节点的规则是CHWC.VLV< 15.然而,基于父节点中的分裂规则,我不希望树的这一部分中的任何观察值具有值CHWC.VLV< 15。

有人知道这种明显冲突的原因吗?

1 个答案:

答案 0 :(得分:2)

这类问题通常来自于在输出CART树时不使用足够的精度数字输出。举个简单的例子,让我们考虑以下数据集:

library(rpart)
mod <- rpart(outcome~CHWC.VLV)
library(rpart.plot)
prp(mod)

我们可以用以下方式训练和绘制我们的CART模型:

CHWC.VLV >= 15

lm75_detect()

这似乎是一个矛盾,因为根节点的左子树应该具有所有值CHWC.VLV < 15,但下一个分割是prp(mod, digits=4) 。然而,在绘制更准确的数字时,我们发现这实际上并不矛盾:

{{1}}

enter image description here