决策树在rpart和party包之间完全不同

时间:2015-07-09 09:56:58

标签: r decision-tree

我想比较CART和CHAID算法,我选择rpart(cart算法)和party(chaid算法)来查看它们之间的区别。 我的数据是关于血压的: enter image description here

派对功能让我回复:

library(party)
# par <- ctree_control(minsplit=20, minbucket=10)
arbre <- ctree(bpress_level ~ ., data = df)
arbre
plot(arbre)

enter image description here

rpart包返回我:

library(rpart)
fit <- rpart(bpress_level ~ .,
             method="class", data=df)

printcp(fit) # display the results
plotcp(fit)

plot(fit, uniform=TRUE,
     main="Classification Tree for pressure level")
text(fit, use.n=TRUE, all=TRUE, cex=.8)

enter image description here

我不了解树木为什么如此不同,这是正常的吗? 为什么派对包该算法忽略了像烟,压力,性别.... 先感谢您。

1 个答案:

答案 0 :(得分:2)

首先,ctree([party])不使用CHAID算法。它与CHAID非常相似,但不是CHAID。 CHAID只能在数据具有分类性质时应用。

当然,还有许多其他递归分区算法或多或少类似于CHAID,它可以处理混合数据类型。例如,CTree算法(条件推理树)也基于重要性测试,并且可以在包partykit中的ctree()中使用。