【发布时间】:2023-04-05 03:23:01
【问题描述】:
我想比较CART和CHAID算法,我选择rpart(cart算法)和party(chaid算法)来看看它们的区别。 我的数据是关于血压的:
派对功能返回我:
library(party)
# par <- ctree_control(minsplit=20, minbucket=10)
arbre <- ctree(bpress_level ~ ., data = df)
arbre
plot(arbre)
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)
我不明白为什么树决定如此不同,这正常吗? 为什么对于派对包,算法会忽略烟雾、压力、性别...... 先感谢您。
【问题讨论】:
-
可能是因为
ctree使用显着性检验来避免过度拟合,而在rpart中则需要额外的步骤。关于这两个here有一些讨论 -
还要注意,在深度为 2 的情况下,两棵树是相同的。所以很有可能在对 rpart 树进行一些额外的修剪之后(如@David Arenburg 所建议的那样),差异很小。
-
补充说明:虽然CTree在很多方面与CHAID非常相似,但也有很多不同和改进等。所以我不会说CTree提供了CHAID实现。
标签: r decision-tree