gpt4 book ai didi

r - 使用 CHAID 包生成树时 Minbucket 不工作

转载 作者:行者123 更新时间:2023-12-03 00:55:53 24 4
gpt4 key购买 nike

我一直在努力确保使用 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)

这与控制 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, HS, >HS: Gore (n = 311, err = 49.5%)
| | [4] educr in College, Post Coll: Bush (n = 249, err = 35.3%)
| [5] marstat in widowed, divorced, never married
| | [6] gender in male: Gore (n = 159, err = 47.8%)
| | [7] gender in female
| | | [8] ager in 18-24, 25-34, 35-44, 45-54: Gore (n = 127, err = 22.0%)
| | | [9] ager in 55-64, 65+: Gore (n = 115, err = 40.9%)

Number of inner nodes: 4
Number of terminal nodes: 5

终端节点 3、4、6、8 和 9 分别包含 311、249、159、127 和 115 个观测值。现在,通常情况下,为了限制观察的最小数量,应按以下步骤进行:

ctrl <- chaid_control(minbucket = 200)

尽管如此,调用

chaid(vote3 ~ ., data = USvoteS, control = ctrl)

生成与之前相同的树(而不是节点至少有 200 个观测值的树)。

我不确定是我犯了错误,还是在实现chaid过程中遗漏了一些东西......

最佳答案

每个终端节点的最小观测数由minbucketminprob控制。前者给出观测的绝对数量,后者给出相对频率(相对于当前节点的样本大小)。在内部,每个节点使用两个数量的最小值。这对我来说也是违反直觉的,因为我本来期望使用最大值 - 但我没有检查原始 CHAID 算法是否是这样描述的。

如果您想确保只有 minbucket 控制最小节点大小,则设置 minbucket = 200, minprob = 1

关于r - 使用 CHAID 包生成树时 Minbucket 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27238620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com