使用R了解CART模型中的minbucket功能

问题描述 投票:5回答:1

假设训练数据是“果实”,我将使用它来预测使用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,那么虽然红色出现五次但没有发生分裂。

r decision-tree rpart
1个回答
5
投票

rpart包的文档:

minbucket

任何终端节点中的最小观测数。如果只指定了一个minbucket或minsplit,代码可以根据需要将minsplit tominbucket * 3或minbucket设置为minsplit / 3。

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

minbucket的值越小,您的CART模型就越精确。通过将minbucket设置为太小的值(例如1),您可能会冒着过度拟合模型的风险。

© www.soinside.com 2019 - 2024. All rights reserved.