我一直在努力确保使用 CHAID 包中实现的 CHAID 算法获得的分类树将生成一棵具有至少具有minbucket观察数量的终端节点(叶子)的树。根据 chaid 过程的描述,这可以通过指定一个chaid_control函数来完成:
chaid_control(alpha2 = 0.05, alpha3 = -1, alpha4 = 0.05,
minsplit = 20, minbucket = 7, minprob = 0.01,
stump = FALSE, maxheight = -1)
Run Code Online (Sandbox Code Playgroud)
这与控制 rpart 包中的树的行为类似。
尽管如此,设置minbucket参数似乎对生成的树的最终形状没有任何影响。这是一个例子:
library("CHAID")
set.seed(290875)
USvoteS <- USvote[sample(1:nrow(USvote), 1000),]
chaid(vote3 ~ ., data = USvoteS)
Model formula:
vote3 ~ gender + ager + empstat + educr + marstat
Fitted party:
[1] root
| [2] marstat in married
| | [3] educr <HS, …Run Code Online (Sandbox Code Playgroud)