使用 R 了解 CART 模型中的 minbucket 函数

Understanding of minbucket function in CART model using R

假设训练数据是 "fruit",我将使用它在 R

中使用 CART 模型进行预测
> fruit=data.frame(
                   color=c("red",   "red",  "red",  "yellow", "red","yellow",
                           "orange","green","pink", "red",‌    ​"red"),
                   isApple=c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE,
                             FALSE,FALSE,FALSE,FALSE,TRUE))

> mod = rpart(isApple ~ color, data=fruit, method="class", minbucket=1)

> prp(mod)

如果我们要使用 minbucket = 2, 3, 4, 5,谁能解释一下 minbucket 在绘制 CART 树中的确切作用是什么?

看到我有 2 个变量 color 和 isApple。颜色变量有绿色、黄色、粉红色、橙色和红色。 Apple 变量的值为 TRUE 或 FALSE。在最后一个示例中,RED 映射了三个 TRUE 和 2 个 FALSE。红色值出现五次。如果我给 minbucket = 1,2,3 那么它正在分裂。如果我给 minbucket = 4 或 5,那么尽管红色出现五次,但不会发生拆分。

来自 rpart 包的文档:

minbucket

the minimum number of observations in any terminal node. If onlyone of minbucket or minsplit is specified, the code either sets minsplit tominbucket*3 or minbucket to minsplit/3, as appropriate.

minbucket 设置为 1 是没有意义的,因为每个叶节点(根据定义)至少有一个观察值。如果将其设置为更高的值,比如 3,则意味着每个叶节点在该桶中至少有 3 个观测值。

minbucket的值越小,您的CART模型就越精确。通过将 minbucket 设置为太小的值,例如 1,您可能 运行 存在过度拟合模型的风险。