【问题标题】:Conflicting splits in CART decision treeCART 决策树中的冲突拆分
【发布时间】:2016-05-05 04:14:37
【问题描述】:

我目前在 R 中使用决策树 (CART) 和包 rpartrattle 进行分类。

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

在父节点中拆分为 CHWC.VLV >= 15;如果这是真的,你在树的左边,如果它是假的,你在树的右边。在左边,我们发现子节点的规则是 CHWC.VLV

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

【问题讨论】:

  • 回归不好的预测方面之一是 NA。另一方面,树方法在这些方面没有困难。你确定这不是那些分裂之一吗? (除了推测之外,需要数据来做任何事情。)
  • 也感谢42的贡献。

标签: r decision-tree rpart


【解决方案1】:

这类问题通常是因为在输出 CART 树时没有使用足够的精度来输出。作为一个简单的例子,让我们考虑以下数据集:

CHWC.VLV <- seq(14, 16, length.out=10000)
outcome <- ifelse(CHWC.VLV >= 14.97, ifelse(CHWC.VLV <= 15.34, 1, 2), 3)

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

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

这似乎是矛盾的,因为根节点的左子树应该具有所有值CHWC.VLV &gt;= 15,但下一个拆分是CHWC.VLV &lt; 15。然而,在以更高的准确度进行绘图时,我们发现这实际上并不矛盾:

prp(mod, digits=4)

【讨论】:

    猜你喜欢
    • 2011-05-23
    • 2020-04-15
    • 2022-07-19
    • 2012-10-12
    • 2018-11-30
    • 2012-05-06
    • 1970-01-01
    • 2018-03-16
    • 2018-09-15
    相关资源
    最近更新 更多