rpart 和 party 包完全不同的决策树

Mos*_*afa 5 r decision-tree

我想比较一下CART和CHAID算法,我选择rpart(cart algorithm)和party(chaid algorithm)来看看它们的区别。我的数据是关于血压的: 在此处输入图片说明

派对功能返回我:

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

在此处输入图片说明

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)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我不明白为什么树决定素如此不同,这正常吗?为什么对于派对包,算法会忽略烟雾,压力,性别......提前谢谢你。

Ate*_*dra 2

首先,ctree([party])不使用CHAID算法。它与 CHAID 非常相似,但又不同于 CHAID。CHAID 仅适用于数据本质上是分类的情况。

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